> Proof can be done on the program the AI outputs, and doesn't need to be done by the AI.
In principle, yes. In practice, people have found it extremely challenging to prove anything about programs that weren't explicitly written to be easy to prove things about.
And AIs are better at writing Lean proofs than just about 99.9% or so of people (exact number is made up). So we might as well have the AI write the proof.
> > But yes, as said before, we only prove software that's specifically co-written to be easy to prove.
> We can just tell the AI to do that, at this point.
Yes, of course. That's my point. And the AI can co-write both proofs and programs.
> Even in training runs, use automated tests (that reject both clearly-unsafe and also hard-to-prove code) to make sure the code it generates is of that subset.
You can only realise that subset, by actually writing the proof.
You can think of these automated proofs like a souped up version of eg Rust's or Haskell's type system. You generally don't write a big chunk of Rust code first, and try to work out how to fit it into the type system afterwards. You co-write both.
People sometimes try to retrofit old Python or JavaScript code with types, and that usually has a lot of problems; and these gradual type systems are not nearly as stringent as you need to be for proper proofs.