I'm reading the reference more slowly.
If AI will possess superhuman coding abilities, we must build the systems
for AI to write and execute code, with humans shifting to the crucial roles of
specification and verification.
The problem with this approach has been the complexity of formal methods; the
actual execution of the verification proofs which has required human beings so far.
And its very hard work!! A proof is typically much longer than the programs it verifies.
This has been true for 50 years. So I guess we require an AI revolution in verification too
for this to work.
The proofs tend to be rather unreadable. Here is a step in the proof of the associativity of
append. THORN is failing here - whether because the problem has a bug in it or THORN is
not bright enough I don't know yet. I will test it against Prover 9; a more mature ATP.
Step 10 [1]
?- [[append [append [cons a b] c] d] = [append [cons a b] [append c d]]]
1. [d : [list t]]
2. [c : [list t]]
3. [all A : type [all x140091 : [list A] [all x140092 : [list A] [[append x140091 x140092] : [list A]]]]]
4. [all t135565 : type [all X : [list t135565] [[append [] X] = X]]]
5. [all t140090 : type [all X : t140090 [all Y : [list t140090] [all Z : [list t140090] [[append [cons X Y] Z] = [cons X [append Y Z]]]]]]]
6. [a : t]
7. [b : [list t]]
8. [all y : [list t] [all z : [list t] [[append [append a y] z] = [append a [append y z]]]]]
9. [t : type]
So the revolution the article refers to is going to require a revolution in the way these proofs
are conducted, then AI is going to be needed to conduct the proofs!
Which then begs the question - if AI is verifying AI have we moved forward? Yes because if
AI can conduct these proofs autonomously, it is a great step in automated reasoning and
though programs to make proofs are laborious, checking them is not and in a type secure
system you can enforce the security of the proof (re Edinburgh LCF and also the software
driving proofs in LPC which requires type secure i.e. valid steps). But note AFAIK this revolution in
automated reasoning has not happened - yet.
In effect that means that the effort will move to specification.
Crucially, this paradigm shifts the focus from AI assisting humans in writing code using
traditional tools, to AI generating code within an AI-native framework, where humans
primarily focus on specifying requirements and verifying the correctness and safety of
the AI's output.
That differs from my vision of years back, because I envisaged using Shen to help programmers
and not AI. But time moves on.
I confess a slightly queasy feeling about programs we don't understand, verified by proofs which
are machine generated and unsurveyable. But then KL is pretty unreadable so maybe I'm just
fussing.
Mark