Results 1 
8 of
8
Partial recursive functions in higherorder logic
 Int. Joint Conference on Automated Reasoning (IJCAR 2006), LNCS
, 2006
"... Abstract. Based on inductive definitions, we develop an automated tool for defining partial recursive functions in HigherOrder Logic and providing appropriate reasoning tools for them. Our method expresses termination in a uniform manner and includes a very general form of pattern matching, where p ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
Abstract. Based on inductive definitions, we develop an automated tool for defining partial recursive functions in HigherOrder Logic and providing appropriate reasoning tools for them. Our method expresses termination in a uniform manner and includes a very general form of pattern matching, where patterns can be arbitrary expressions. Termination proofs can be deferred, restricted to subsets of arguments and are interchangeable with other proofs about the function. We show that this approach can also facilitate termination arguments for total functions, in particular for nested recursions. We implemented our tool as a definitional specification mechanism for Isabelle/HOL. 1
A Step Towards the Mechanization of Partial Functions: Domains as Inductive Predicates
, 1998
"... . This work is centred on the specification of partial operations in a system based on a classical logic with total functions. We present a style with preconditions: our method enables calculation of the domain of a partial function f independently of calculation of f. We also study the influen ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
. This work is centred on the specification of partial operations in a system based on a classical logic with total functions. We present a style with preconditions: our method enables calculation of the domain of a partial function f independently of calculation of f. We also study the influence of this style upon the proof facility and the later use of the specification. 1 Introduction In this paper we are in the context of a logic which does not incorporate the notion of partiality and where any function is total. This choice is justified by the power of the underlying logic and by the expressive power of the associated languages. In this context, various tricks are used to encode the partiality. In a typed world, a total function of type ! 0 is defined for every value of type . Thus we have to encode a partial function whose arguments and result are respectively of type 1 and 2 into a total function of type ! 0 . Usually 1 and are identical but 2 and 0 are...
Proving ML type soundness within Coq
 In Proc. TPHOLs ’00
, 2000
"... Abstract. We verify within the Coq proof assistant that ML typing is sound with respect to the dynamic semantics. We prove this property in the framework of a big step semantics and also in the framework of a reduction semantics. For that purpose, we use a syntaxdirected version of the typing rules ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Abstract. We verify within the Coq proof assistant that ML typing is sound with respect to the dynamic semantics. We prove this property in the framework of a big step semantics and also in the framework of a reduction semantics. For that purpose, we use a syntaxdirected version of the typing rules: we prove mechanically its equivalence with the initial type system provided by Damas and Milner. This work is complementary to the certification of the ML type inference algorithm done previously by the author and Valérie MénissierMorain. 1
Inductive invariants for nested recursion
 Theorem Proving in Higher Order Logics (TPHOLS'03), volume 2758 of LNCS
, 2003
"... Abstract. We show that certain inputoutput relations, termed inductive invariants are of central importance for termination proofs of algorithms defined by nested recursion. Inductive invariants can be used to enhance recursive function definition packages in higherorder logic mechanizations. We d ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Abstract. We show that certain inputoutput relations, termed inductive invariants are of central importance for termination proofs of algorithms defined by nested recursion. Inductive invariants can be used to enhance recursive function definition packages in higherorder logic mechanizations. We demonstrate the usefulness of inductive invariants on a large example of the BDD algorithm Apply. Finally, we introduce a related concept of inductive fixpoints with the property that for every functional in higherorder logic there exists a largest partial function that is such a fixpoint. 1
Isomorphisms  A Link Between the Shallow and the Deep
 Theorem Proving in Higher Order Logics, LNCS 1690
, 1999
"... We present a theory of isomorphisms between typed sets in Isabelle/HOL. ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We present a theory of isomorphisms between typed sets in Isabelle/HOL.
Towards a Higher Reasoning Level in Formalized Homological Algebra
 11th Symposium on the Integration of Symbolic Computation and Mechanised Reasoning (Calculemus) (Rome, Italy) (Thérèse Hardin and Renaud Rioboo, eds.), Aracne Editrice, 2003, http://www4.in.tum.de/˜ballarin/publications/calculemus2003.pdf
, 2003
"... We present a possible solution to some problems to mechanize proofs in Homological Algebra: how to deal with partial functions in a logic of total functions and how to get a level of abstraction that allows the prover to work with morphisms in an equational way. ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present a possible solution to some problems to mechanize proofs in Homological Algebra: how to deal with partial functions in a logic of total functions and how to get a level of abstraction that allows the prover to work with morphisms in an equational way.
Hardware Design and Theorem Proving
"... This paper introduces reFLect, a functional programming language with reflection features intended for applications in hardware design and verification. The reFLect language is strongly typed and similar to ML, but has quotation and antiquotation constructs. These may be used to construct and decomp ..."
Abstract
 Add to MetaCart
This paper introduces reFLect, a functional programming language with reflection features intended for applications in hardware design and verification. The reFLect language is strongly typed and similar to ML, but has quotation and antiquotation constructs. These may be used to construct and decompose expressions in the reFLect language itself. The paper motivates and presents the syntax and type system of this language, which brings together a new combination of patternmatching and reflection features targeted specifically at our application domain. It also gives an operational semantics based on a new use of contexts as expression constructors, and it presents a scheme for compiling reFLect programs into the λcalculus using the same context mechanism. 1