I want things to be mutually  perpendicular he didn't say how to do it the solver figured out how to do it so another great example of that just came up a few years ago Carl Hewitt is doing this system called planner which is really great it actually goes in both directions so it can reason forward procedurally it can reason backwards from goals so if you tell planner that apple red then if you get an apple knows ahah it's red but you can also say I want something red and I'll say oh lets try an apple so you can express your program in terms of the goals the results that you want from the program but you can also provide procedural strategies for meeting certain types of subgoals really um really interesting way of thinking a programming and this led to another system a few years later called prologue which just kept the backwards part of planner so in prologue you can express your program as goals and the system itself uses a search or whatever to try to figure out how to meet those goals so this is leading to a genre of programming that's called logic programming but that's that's not really important part here what's important is expressed your program as what you want to not a setup instructions on how to do it 