Proving termination of normalization functions for conditional expressions
Journal of Automated Reasoning
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Synthesis of ML programs in the system Coq
Journal of Symbolic Computation - Special issue on automatic programming
Partial Functions in a Total Setting
Journal of Automated Reasoning
Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Fix-Point Equations for Well-Founded Recursion in Type Theory
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Another Look at Nested Recursion
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Nested General Recursion and Partiality in Type Theory
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Reasoning with Executable Specifications
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Winskel is (Almost) Right: Towards a Mechanized Semantics Textbook
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Simple general recursion in type theory
Nordic Journal of Computing
Modelling general recursion in type theory
Mathematical Structures in Computer Science
General recursion in type theory
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
On the representation of imperative programs in a logical framework
EUROCAST'07 Proceedings of the 11th international conference on Computer aided systems theory
Defining and reasoning about recursive functions: a practical tool for the coq proof assistant
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Producing certified functional code from inductive specifications
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Hi-index | 0.00 |
We describe the operational and denotational semantics of a small imperative language in type theory with inductive and recursive definitions. The operational semantics is given by natural inference rules, implemented as an inductive relation. The realization of the denotational semantics is more delicate: The nature of the language imposes a few difficulties on us. First, the language is Turing-complete, and therefore the interpretation function we consider is necessarily partial. Second, the language contains strict sequential operators, and therefore the function necessarily exhibits nested recursion. Our solution combines and extends recent work by the authors and others on the treatment of general recursive functions and partial and nested recursive functions. The first new result is a technique to encode the approach of Bove and Capretta for partial and nested recursive functions in type theories that do not provide simultaneous induction-recursion. A second result is a clear understanding of the characterization of the definition domain for general recursive functions, a key aspect in the approach by iteration of Balaa and Bertot. In this respect, the work on operational semantics is a meaningful example, but the applicability of the technique should extend to other circumstances where complex recursive functions need to be described formally.