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
