(no title)
mvh | 3 years ago
I’m a 3rd year PhD student in formal verification and for the life of me I can’t imagine why anyone would choose to use an unsound logic. I must be missing something very obvious. Is it, IDK, “sound as long as you don’t reason about some very specific kind of formula which can be easily avoided”, or something like that?
gnulinux|3 years ago
I have to note that I personally do not agree with this reasoning, yet afaik this is one of the justifications used to introduce rules to TT of a PL that is known to be unsound.
Realistically, it all depends on what you want to do with the type system. If you want to have a general purpose programming language that is not restricted by logical technicalities not well-understood by programmers, maybe it's better to admit "Type: Type" or similar. If you want to have a dependently typed programming language where any runtime program can potentially be a compile-time program, you may need more guarantees (e.g. you may need to know certain functions will halt).
ivanbakel|3 years ago
Taken to an extreme, if all you want to show off is how proofs are constructed, then whether or not your logic is actually sound doesn't matter. Since the goal of the tool isn't correct proofs, the proofs don't need to have any soundness properties.
practal|3 years ago