つぶやきに反応するのも難があるけど

http://homepage1.nifty.com/herumi/diary/0904.html#30の話。

配列a[N]が与えられたときに
M_a := { i : a[i] >= a[j] for all j }の元を一つ求めよ

私もこちらの方が楽だと思う口だ。Constractだけ書けばコンパイラが実装してくれる世界が理想。実際には「Constractだけ」とは行かないだろうけど。
仕様記述を基礎ソースコード、実装記述をヒューリスティックなヒント項、というように分離できたら満足かな。