lean4-htt/old_tests/tests/lean/run/array1.lean
2018-04-10 12:56:55 -07:00

28 lines
577 B
Text

#check @d_array.mk
#eval mk_array 4 1
def v : array 10 nat :=
@d_array.mk 10 (λ _, nat) (λ ⟨i, _⟩, i)
#eval array.map (+10) v
def w : array 10 nat :=
(mk_array 9 1)^.push_back 3
def f : fin 10 → nat :=
d_array.cases_on w (λ f, f)
#eval f ⟨9, dec_trivial⟩
#eval f ⟨2, dec_trivial⟩
#eval (((mk_array 1 1)^.push_back 2)^.push_back 3)^.foldl 0 (+)
def array_sum {n} (a : array n nat) : nat :=
a^.foldl 0 (+)
#eval array_sum (mk_array 10 1)
#eval (mk_array 10 1)^.data ⟨1, dec_trivial⟩ + 20
#eval (mk_array 10 1)^.data 2
#eval (mk_array 10 3)^.data 2