| ▲ | zozbot234 4 days ago | |||||||||||||||||||||||||||||||||||||||||||||||||
Proof by reflection is accomplished by running some arbitrary program during proof checking that has been proven to only return a "true" result if the goal is true. You can do the exact same thing in an LCF system, and in fact that's arguably what a complex LCF "tactic" amounts to in the first place. If anything, the viability of proof by reflection simply shows that the divide with LCF-like checkers is not really that large. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | stevan 4 days ago | parent [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
> Proof by reflection is accomplished by running some arbitrary program during proof checking that has been proven to only return a "true" result if the goal is true. You can do the exact same thing in an LCF system, and in fact that's arguably what a complex LCF "tactic" amounts to in the first place. I think the difference is that in a type theory you can prove the soundness of the decision procedure to be correct within the system? From "Metatheory and Reflection in Theorem Proving: A Survey and Critique" by John Harrison, 1995: > "No work on reflection has actually been done in HOL, but Slind (1992) has made some interesting proposals. His approach is distinguished from those considered previously in two important respects. First, he focuses on proving properties of programs written in Standard ML using the formal semantics to be found in Milner, Tofte, and Harper (1990). This contrasts with the other approaches we have examined, where the final jump from an abstract function inside the logic to a concrete implementation in a serious programming language which appears to correspond to it is a glaring leap of faith. [...]" Proving that your LCF-like tactics are sounds using the (informal) semantics of the tactic language (ML) seems cumbersome. Furthermore I believe proof by reflection crucially relies on computation happening at the logical level in order to minimise proof checking. Harrison concludes: > "Nevertheless it is not clear that reflection’s practical utility has yet been convincingly demonstrated." This was from 1995, so fair enough, but Paulson should be aware of Gonthier's work, which makes me wonder if anything changed since then? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||