A Two-Level Logic Approach to Reasoning About Typed Specification Languages
نویسندگان
چکیده
The two-level logic approach (2LL) to reasoning about computational specifications, as implemented by the Abella theorem prover, represents derivations of a specification language as an inductive definition in a reasoning logic. This approach has traditionally been formulated with the specification and reasoning logics having the same type system, and only the formulas being translated. However, requiring identical type systems limits the approach in two important ways: (1) every change in the specification language’s type system requires a corresponding change in that of the reasoning logic, and (2) the same reasoning logic cannot be used with two specification languages at once if they have incompatible type systems. We propose a technique based on adequate encodings of the types and judgements of a typed specification language in terms of a simply typed higher-order logic program, which is then used for reasoning about the specification language in the usual 2LL. Moreover, a single specification logic implementation can be used as a basis for a number of other specification languages just by varying the encoding. We illustrate our technique with an implementation of the LF dependent type theory as a new specification language for Abella, co-existing with its current simply typed higher-order hereditary Harrop specification logic, without modifying the type system of its reasoning logic. 1998 ACM Subject Classification F.4.1 Mathematical Logic: Proof theory
منابع مشابه
The Abella Interactive Theorem Prover (System Description)
Abella [3] is an interactive system for reasoning about aspects of object languages that have been formally presented through recursive rules based on syntactic structure. Abella utilizes a two-level logic approach to specification and reasoning. One level is defined by a specification logic which supports a transparent encoding of structural semantics rules and also enables their execution. Th...
متن کاملSpecification of nonmonotonic reasoning
Two levels of description of nonmonotonic reasoning are distinguished. For these levels semantical formalizations are given. The first level is defined semantically by the notion of belief state frame, the second level by the notion of reasoning frame. We introduce two specification languages to describe nonmonotonic reasoning at each of the levels: (1) a specification language for level 1, wit...
متن کاملAn overview of a proof theoretical approach to reasoning about computation
Typing rules and structural operational semantics are often given via inference rules: that is, the justification of a typing or an evaluation is actually a proof. Thus it is not surprising that proof theory can be used to benefit the specification of and the reasoning about computation. An additional advantage of using proof theory is that it can support such “intensional” aspects of computati...
متن کاملMechanized Reasoning for Binding Constructs in Typed Assembly Language Using Coq
Mechanized reasoning about programming languages and type systems is becoming increasingly important for the development of certified code frameworks. For instance, in order to realize the safety and security potential of proof-carrying code (PCC) [3] the development of formal, machine-checkable proofs is a necessity. Much of the difficulty and research surrounding PCC involves the generation o...
متن کاملRealizing the Dependently Typed Λ-calculus
Dependently typed λ-calculi such as the Edinburgh Logical Framework (LF) can encode relationships between terms in types and can naturally capture correspondences between formulas and their proofs. Such calculi can also be given a logic programming interpretation: the system is based on such an interpretation of LF. We have considered whether a conventional logic programming language can also p...
متن کامل