A program P is more useful than Hugh for X if, for every project using H to accomplish X, we can efficiently transform it into a new project which uses P to accomplish X. The new project shouldn’t be much more expensive—it shouldn’t take much longer, use much more computation or many additional resources, involve much more human labor, or have significant additional side-effects.
Why quantify over projects? Why is it not sufficient to say that P is as useful as H if it can also accomplish X?
Seems like you want to say that P can achieve X in more ways, but I fail to see why that is obviously relevant. What is even a project?
Or is this some kind of built in measure to prevent side effects, by making P achieve X in a humanlike way? Still doesn’t feel obvious enough.
This is the typical way of talking about “more useful than” in computer science.
Saying “there is some way to use P to efficiently accomplish X” isn’t necessarily helpful to someone who can’t find that way. We want to say: if you can find a way to do X with H, then you can find a way to do it with P. And we need an efficiency requirement for the statement to be meaningful at all.
This part feels underdefined:
Why quantify over projects? Why is it not sufficient to say that P is as useful as H if it can also accomplish X?
Seems like you want to say that P can achieve X in more ways, but I fail to see why that is obviously relevant. What is even a project?
Or is this some kind of built in measure to prevent side effects, by making P achieve X in a humanlike way? Still doesn’t feel obvious enough.
This is the typical way of talking about “more useful than” in computer science.
Saying “there is some way to use P to efficiently accomplish X” isn’t necessarily helpful to someone who can’t find that way. We want to say: if you can find a way to do X with H, then you can find a way to do it with P. And we need an efficiency requirement for the statement to be meaningful at all.