| ▲ | andy99 6 days ago | ||||||||||||||||
Maybe a stupid question, how do you verify the verification program? If an LLM is writing it too, isn’t it turtles all the way down, especially with the propensity of AI to modify tests so they pass? | |||||||||||||||||
| ▲ | crvdgc 6 days ago | parent | next [-] | ||||||||||||||||
> how do you verify the verification program? The program used to check the validity of a proof is called a kernel. It just need to check one step at a time and the possible steps can be taken are just basic logic rules. People can gain more confidence on its validity by: - Reading it very carefully (doable since it's very small) - Having multiple independent implementations and compare the results - Proving it in some meta-theory. Here the result is not correctness per se, but relative consistency. (Although it can be argued all other points are about relative consistency as well.) | |||||||||||||||||
| ▲ | mdnahas 4 days ago | parent | prev | next [-] | ||||||||||||||||
Yes, you’re right, it is turtles all the way down. But, a huge part of the prover can be untrusted or proven correct by a smaller part of the prover! That leaves a small part that cannot prove itself correct. That is called the “kernel”. Kernels are usually verified by humans. A good design can make them very small: 500 to 5000 lines of code. Systems designers brag about how small their kernels are! The kernel could be proved correct by another system, which introduces another turtle below. Or the kernel can be reflected upwards and proved by the system itself. That is virtually putting the bottom turtle on top of a turtle higher in the stack. It will find some problems, but it still leaves the possibility that the kernel has a flaw that accepts bad proofs, including the kernel itself. | |||||||||||||||||
| ▲ | pegasus 6 days ago | parent | prev | next [-] | ||||||||||||||||
The proof is verified mechanically - it's very easy to verify that a proof is correct, what's hard is coming up with the proof (it's an NP problem). There can still be gotchas, especially if the statement proved is complex, but it does help a lot in keeping bugs away. | |||||||||||||||||
| |||||||||||||||||
| ▲ | newAccount2025 6 days ago | parent | prev [-] | ||||||||||||||||
There is tons of work on this question. Super recent: https://link.springer.com/article/10.1007/s10817-025-09743-8 | |||||||||||||||||