To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification. That describes a compiler, basically.
Haskell is a programming language that uses mathematical rules to help you verify program correctness. It is a tool that helps you derive a program. You still have to perform the derivation process, within the confines of the programming language.
The notion that you are describing what things are, rather than how the computation is done, is what declarative vs. imperative programming means. Imperative programming is programming in the small, by specifying a recipe; a series of steps. Declarative programming is where you essentially tell the computer what you want, and it figures out how to get it done.
Declarative programming is characterized by referential transparency, mathematical correctness, the lack of side effects, laziness and concurrency; all of the things that Haskell excels in.