Results 11  20
of
48
Translating Dependent Type Theory into Higher Order Logic
 IN PROCEEDINGS OF THE SECOND INTERNATIONAL CONFERENCE ON TYPED LAMBDA CALCULI AND APPLICATIONS, VOLUME 664 OF LECTURE NOTES IN COMPUTER SCIENCE
, 1993
"... This paper describes a translation of the complex calculus of dependent type theory into the relatively simpler higher order logic originally introduced by Church. In particular, it shows how type dependency as found in MartinLöf's Intuitionistic Type Theory can be simulated in the formulation o ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
This paper describes a translation of the complex calculus of dependent type theory into the relatively simpler higher order logic originally introduced by Church. In particular, it shows how type dependency as found in MartinLöf's Intuitionistic Type Theory can be simulated in the formulation of higher order logic mechanized by the HOL theoremproving system. The outcome is a theorem prover for dependent type theory, built on top of HOL, that allows natural and flexible use of settheoretic notions. A bit more technically, the language of the resulting theoremprover is the internal language of a (boolean) topos (as formulated by Phoa).
Representing and reasoning with operational semantics
 In: Proceedings of the Joint International Conference on Automated Reasoning
, 2006
"... The operational semantics of programming and specification languages is often presented via inference rules and these can generally be mapped into logic programminglike clauses. Such logical encodings of operational semantics can be surprisingly declarative if one uses logics that directly account ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
The operational semantics of programming and specification languages is often presented via inference rules and these can generally be mapped into logic programminglike clauses. Such logical encodings of operational semantics can be surprisingly declarative if one uses logics that directly account for termlevel bindings and for resources, such as are found in linear logic. Traditional theorem proving techniques, such as unification and backtracking search, can then be applied to animate operational semantic specifications. Of course, one wishes to go a step further than animation: using logic to encode computation should facilitate formal reasoning directly with semantic specifications. We outline an approach to reasoning about logic specifications that involves viewing logic specifications as theories in an objectlogic and then using a metalogic to reason about properties of those objectlogic theories. We motivate the principal design goals of a particular metalogic that has been built for that purpose.
A Complete Transformation System for Polymorphic HigherOrder Unification
, 1991
"... Polymorphic higherorder unification is a method for unifying terms in the polymorphically typed calculus, that is, given a set of pairs of terms S 0 = fs 1 ? = t 2 ; : : : ; s n ? = t n g, called a unification problem, finding a substitution oe such that oe(s i ) and oe(t i ) are equivalent u ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Polymorphic higherorder unification is a method for unifying terms in the polymorphically typed calculus, that is, given a set of pairs of terms S 0 = fs 1 ? = t 2 ; : : : ; s n ? = t n g, called a unification problem, finding a substitution oe such that oe(s i ) and oe(t i ) are equivalent under the conversion rules of the calculus for all i, 1 i n. I present the method as a transformation system, i.e. as a set of schematic rules U =) U 0 such that any unification problem ffi (U ) can be transformed into ffi (U 0 ) where ffi is an instantiation of the metalevel variables in U and U 0 . By successive use of transformation rules one possibly obtains a solved unification problem with obvious unifier. I show that the transformation system is correct and complete, i.e. if ffi (U ) =) ffi (U 0 ) is an instance of a transformation rule, then the set of all unifiers of ffi (U 0 ) is a subset of the set of all unifiers of ffi (U ) and if U is the set of all unification ...
A paraconsistent higher order logic
 International Workshop on Paraconsistent Computational Logic, volume 95 of Roskilde University, Computer Science, Technical Reports
, 2004
"... Abstract. Classical logic predicts that everything (thus nothing useful at all) follows from inconsistency. A paraconsistent logic is a logic where an inconsistency does not lead to such an explosion, and since in practice consistency is difficult to achieve there are many potential applications of ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
Abstract. Classical logic predicts that everything (thus nothing useful at all) follows from inconsistency. A paraconsistent logic is a logic where an inconsistency does not lead to such an explosion, and since in practice consistency is difficult to achieve there are many potential applications of paraconsistent logics in knowledgebased systems, logical semantics of natural language, etc. Higher order logics have the advantages of being expressive and with several automated theorem provers available. Also the type system can be helpful. We present a concise description of a paraconsistent higher order logic with countable infinite indeterminacy, where each basic formula can get its own indeterminate truth value (or as we prefer: truth code). The meaning of the logical operators is new and rather different from traditional manyvalued logics as well as from logics based on bilattices. The adequacy of the logic is examined by a case study in the domain of medicine. Thus we try to build a bridge between the HOL and MVL communities. A sequent calculus is proposed based on recent work by Muskens. Many nonclassical logics are, at the propositional level, funny toys which work quite good, but when one wants to extend them to higher levels to get a real logic that would enable one to do mathematics or other more sophisticated reasonings, sometimes dramatic troubles appear.
Unification in an Extensional Lambda Calculus with Ordered Function Sorts and Constant Overloading
, 1994
"... We develop an ordersorted higherorder calculus suitable for automatic theorem proving applications by extending the extensional simply typed lambda calculus with a higherorder ordered sort concept and constant overloading. Huet's wellknown techniques for unifying simply typed lambda terms ar ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We develop an ordersorted higherorder calculus suitable for automatic theorem proving applications by extending the extensional simply typed lambda calculus with a higherorder ordered sort concept and constant overloading. Huet's wellknown techniques for unifying simply typed lambda terms are generalized to arrive at a complete transformationbased unification algorithm for this sorted calculus. Consideration of an ordersorted logic with functional base sorts and arbitrary term declarations was originally proposed by the second author in a 1991 paper; we give here a corrected calculus which supports constant rather than arbitrary term declarations, as well as a corrected unification algorithm, and prove in this setting results corresponding to those claimed there.
Incremental Design and Formal Verification of Microcoded Microprocessors
 Theorem Provers in Circuit Design, Proceedings of the IFIP WG 10.2 International Working Conference
, 1992
"... A number of microprocessors have been specified and verified using machine supported formal techniques [2], [1], [7], [8], [10]. Some of these were preexisting designs, others were designed as part of the specification and verification project. Even in the case of new designs, the formal techniques ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
A number of microprocessors have been specified and verified using machine supported formal techniques [2], [1], [7], [8], [10]. Some of these were preexisting designs, others were designed as part of the specification and verification project. Even in the case of new designs, the formal techniques used offered very little support for incremental design and verification. Support for incremental design and verification means that certain additions to the implementation and/or specification can be verified without reverification of the previous parts. Here, we present techniques for incremental design and verification which, as well as providing more appropriate models, also make the formal verification more efficient. The formal framework to support these ideas has been implemented in the HOL system and has been used in the specification, design and verification of a microcoded microprocessor. The techniques deal with three different aspects of the microprocessor: specification of mac...
ObjectLevel Substitution, Unification And Generalization In MetaLogic
, 1995
"... Metaprogramming in logic has had difficulty with a class of problems, which includes polymorphic type inferencing and KnuthBendix completion. At the core of this difficulty is that logic programming, in particular higherorder logic programming, is often too dependent on its inherent unification ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Metaprogramming in logic has had difficulty with a class of problems, which includes polymorphic type inferencing and KnuthBendix completion. At the core of this difficulty is that logic programming, in particular higherorder logic programming, is often too dependent on its inherent unification and resolution algorithms in providing declarative formulations of objectlevel theories. To free metaprogramming in logic from this dependency, we provide logic programming formulations of substitution and unification on objectlevel expressions. This will provide a set of basic tools for metaprogramming in a higherorder logic programming language, which supports the use of higherorder abstract syntax. In particular, the techniques presented here can be used in a very simple metalanguage, the L restriction of Prolog.
Using Synchronized Transitions for Simulation and Timing Verification
 Workshop on Designing Correct Circuits
, 1991
"... Synchronized Transitions is a formal notation for hardware specification, verification, and simulation. This paper describes the use of Synchronized Transitions in the design of a chip for high bandwidth interprocessor communication. The chip uses a hybrid of synchronous and selftimed circuit te ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Synchronized Transitions is a formal notation for hardware specification, verification, and simulation. This paper describes the use of Synchronized Transitions in the design of a chip for high bandwidth interprocessor communication. The chip uses a hybrid of synchronous and selftimed circuit techniques; a proof is presented that all timing requirements are satisfied. The Synchronized Transitions notation is presented, and it is shown how programs can be translated into logic predicates, providing a basis for formal verification. The use of Synchronized Transitions in the simulation of the chip is described, and the design choices of using both simulation and formal proofs are discussed.
Deductive Reasoning versus Model Checking: Two Formal Approaches for System Development
, 1999
"... We compare and contrast two formal approaches for system development: statebased notation with verification by deductive reasoning, exemplified here by action systems; and eventbased notation with verification by model checking, here using CSP/FDR. Our purpose is to identify specific similarit ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
We compare and contrast two formal approaches for system development: statebased notation with verification by deductive reasoning, exemplified here by action systems; and eventbased notation with verification by model checking, here using CSP/FDR. Our purpose is to identify specific similarities and differences, and strengths and weaknesses of the two approaches by direct comparison on the same application. We examine a small case study of a storeandforward network specified and refined using the two notations. Our work illustrates that different approaches lead to different developmental strategies and can reveal complementary aspects of a system, indicating that unified techniques may be effective. 1 Introduction There are many varieties of formal methods, a term referring to the application of mathematics and mathematically derived techniques to the specification and development of software and hardware. They all have the same purpose: improving the quality and relia...
Nuprl and its Use in Circuit Design
, 1992
"... Nuprl is an interactive theorem proving system in the LCF tradition. It has a higher order logic and a very expressive type theory; the type theory includes dependent function types (\Pi types), dependent product types (\Sigma types) and set types. Nuprl also has a well developed XWindows user inte ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Nuprl is an interactive theorem proving system in the LCF tradition. It has a higher order logic and a very expressive type theory; the type theory includes dependent function types (\Pi types), dependent product types (\Sigma types) and set types. Nuprl also has a well developed XWindows user interface and allows for the use of clear and concise notations, close to ones used in print. Proofs are objects which can be viewed, and serve as readable explanations of theorems. Tactics provide a highlevel extendible toolkit for proof development, while the soundness of the system relies only a fixed set of rules. We give an overview of the Nuprl system, focusing in particular on the advantages that the type theory brings to formal methods for circuit design. We also discuss ongoing projects in verifying floatingpoint circuits, verifying the correctness of hardware synthesis systems, and synthesizing circuits by exploiting the constructivity of Nuprl's logic. Keyword Codes: F.4.1; B.6.2; I...