Journal of Symbolic Computation
Synthesis of ML programs in the system Coq
Journal of Symbolic Computation - Special issue on automatic programming
The Functions Provable by First Order Abstraction
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
Termination Proofs and Complexity Certification
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
On the Computational Interpretation of Negation
Proceedings of the 14th Annual Conference of the EACSL on Computer Science Logic
Actual Arithmetic and Feasibility
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
The Girard-Reynolds Isomorphism
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
The Girard—Reynolds isomorphism (second edition)
Theoretical Computer Science
Controlling program extraction in light logics
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
Kan extensions for program optimisation or: art and dan explain an old trick
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Hi-index | 0.00 |
We present a method of reasoning directly about functional programs in Second-Order Logic, based on the use of explicit second-order definitions for inductively defined data-types. Termination becomes a special case of correct typing. The formula-as-type analogy known from Proof Theory, when applied to this formalism, yields λ-expressions representing objects of inductively defined types, as well as λ-expressions representing functions between such types. A proof that a functional closed expression e is of type T maps into a λ-expression representing (the value of) e; and a proof that a function f is correctly typed maps into a λ-expression representing f (modulo the representations of objects of those types). When applied to integers and to numeric functions the mapping yields Church's numerals and the traditional function representations over them. The λ-expressions obtained under the isomorphism are typed (in the Second-Order Lambda Calculus). This implies that, for functions defined over inductively defined types, the property of being proved everywhere-defined in Second-Order Logic is equivalent to the property of being representable in the Second-Order Lambda Calculus. Extensions and refinements of this result lead to other characterizations of complexity classes by type disciplines. For example, log-space functions over finite structures are precisely the functions over finite-structures definable by λ-pairing-expressions in a predicative version of the Second-Order Lambda Calculus.