I think the opposite is true: a well-typed program may not seem pointless (assuming the system is constant), while specifications can be inconsistent or just plain dumb. So this is not “how to make sure this piece of code reflects my platonic ideas?”, But rather “how to convince my ideas of significant progress in the substantiated plan of pure syntax rules?”. How to make sure that the bird you see is a mockingbird [for some ridiculous notion posed)? Well, study the birds and increase your chances of being right. But since it is always with people , you cannot be 100% sure.
Type theory is a way of mitigating the imperfections of the human mind by introducing formal rules verified by a machine of evidence (this is a very relevant article) and other materials that allow us to concentrate and thus simplify problems (as Browver said: “Mathematics is nothing more, not more which is nothing but the exact part of our thinking "), but you cannot expect that any tool will make your thoughts" right ", because there is no single idea of correctness. IOW, there is no way to formally combine informal and formal: to be informal, to be inside the IO monad is no way out.
So, this does not mean that this syntax reflects my very precise semantics? ", but rather," can I attach my raw semantics to this highly structured syntax? ". Programs are the right material objects, and ideas are cumbersome approximations that can become suitable material objects only by agreement. Thus, we form some basis using conventions, and then we simply trust it, because it is much wiser to trust a small a subset of all your many ideas than all of them.
user3237465 11 Oct '15 at 15:55 2015-10-11 15:55
source share