I buy the premise described, but I don't understand the example given.
The example (disregarding the small errors) resembles constraints from Liquid Haskell / F*...
So there must be something I don't get.
The example (disregarding the small errors) resembles constraints from Liquid Haskell / F*...
So there must be something I don't get.
In simpler cases, these systems may have similar feels but as the application gets larger then they will start to look very different in terms of developer effort (for proofs) and completeness of correctness guarantees.