at the beginning of the twentieth century, two theories about computation developed almost simultaneously: the theory of computability and the theory of constructivity. In a perfect world, the schools of thought that produced these theories would have recognized how their work was connected and cooperated in a climate of mutual respect. Sadly, this was not the case, and the theories emerged in confusion and incomprehension. Not until the middle of the century would the links between computability and constructivity finally be understood.
To this day, there are traces of the old strife in the sometimes excessively ideological way in which these theories are expounded, both of which deserve a dispassionate presentation. After our call for unity, we must nevertheless concede that, although both schools of thought developed concepts that turned out to be rather similar, the problems they set out to solve were quite different. Therefore, we will tackle these theories separately. Let's start with the notion of computability.
THE EMERGENCE OF NEW ALGORITHMS
As they each in turn attempted to clarify inference rules, Frege, Russell, and Hilbert contributed to the elaboration of predicate logic. Predicate logic, in keeping with the axiomatic conception of mathematics, consists of inference rules that enable proofs to be built, step by step, from axiom to theorem, without providing any scope for computation. Ignoring Euclid's algorithm, medieval arithmetic algorithms, and calculus, predicate logic signaled the return to the axiomatic vision passed down from the Greeks that turns its back on computation.
In predicate logic, as in the axiomatic conception of mathematics, a problem is formulated as a proposition, and solving the problem amounts to proving that the proposition is true (or that it is false). What is new with predicate logic is that these propositions are no longer expressed in a natural language – say, English – but in a codified language made up of relational predicate symbols, coordinating conjunctions, variables, and quantifiers.