|
|
|
|
|
by 9q9
2502 days ago
|
|
1. BIdirectional isn't magic. If I program MergeSort or Quicksort, and give it the signature forall T.
Array[T] ->
(T -> T -> Bool) ->
Array[T]
Bidirectional will not infer what's missing towards a full spec.2. Yes, you can refine later, but if you want to refine later (and in practise you almost always
have the full spec -- if it exists at all -- only at the end), then
why pay the cost of dependent types from the start? Once you have the
full spec, verify with Hoare logic. 3, 4: I'm not sufficiently familiar with Idris to comment. 5. Alternative approaches, in addition owhat "pron" mentioned includes
program logic, e.g. TLA. |
|