import data.list
open list

definition head {A : Type} : Π (l : list A), l ≠ nil → A
| head nil h      := absurd rfl h
| head (a :: l) _ := a

theorem head_cons {A : Type} (a : A) (l : list A) (h : a :: l ≠ nil) : head (a :: l) h = a :=
rfl