18 lines
539 B
Text
18 lines
539 B
Text
import data.list
|
||
|
||
open list bool nat
|
||
definition filter {A} : list A → (A → bool) → list A
|
||
| filter [] p := []
|
||
| filter (a :: l) p :=
|
||
match p a with
|
||
| tt := a :: filter l p
|
||
| ff := filter l p
|
||
end
|
||
|
||
example : list ℕ := filter [0, 3, 7, 2, 4, 6, 3, 4]
|
||
(λ(n : ℕ), begin induction n, exact tt, induction v_0, exact tt, exact ff end)
|
||
|
||
definition foo : list ℕ := filter [0, 3, 7, 2, 4, 6, 3, 4]
|
||
(λ(n : ℕ), begin induction n, exact tt, induction v_0, exact tt, exact ff end)
|
||
|
||
example : foo = [0, 2, 4, 6, 4] := rfl
|