Abstraction and Computation Type Theory, Algebraic Structures, and Recursive Functions Venanzio Capretta