import nat using nat inductive list (T : Type) : Type := | nil {} : list T | cons : T → list T → list T definition length {T : Type} : list T → nat := list_rec 0 (fun x l m, succ m) theorem length_nil {T : Type} : length (@nil T) = 0 := refl _