Modern Eiffel is a new language which is syntactically based on Eiffel
but has a lot of concepts of functional languages like Haskell, OCaml
or Coq. Modern Eiffel puts the emphasis on static verification, i.e. a
compiler can statically check that a programm written in Modern Eiffel
meets its specification.
The following article
http://softwareverificaton.wordpress.com/2012/03/08/76
describes how Modern Eiffel's proof engine can be used to reason about
inductive types. Reasoning is basic on induction.