Results 1  10
of
14
HasCASL: Towards Integrated Specification and Development of Functional Programs
, 2002
"... The development of programs in modern functional languages such as Haskell calls for a widespectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and parametric polymorphism, and contains a functional language as an exe ..."
Abstract

Cited by 25 (11 self)
 Add to MetaCart
The development of programs in modern functional languages such as Haskell calls for a widespectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and parametric polymorphism, and contains a functional language as an executable subset in order to facilitate rapid prototyping. We lay out the design of HasCasl, a higher order extension of the algebraic specification language Casl that is geared towards precisely this purpose. Its semantics is tuned to allow program development by specification refinement, while at the same time staying close to the settheoretic semantics of first order Casl. The number of primitive concepts in the logic has been kept as small as possible; we demonstrate how various extensions to the logic, in particular general recursion, can be formulated within the language itself.
Comorphismbased Grothendieck logics
, 2002
"... In order to obtain a semantic foundation for heterogeneous specification, we extend Diaconescu's morphismbased Grothendieck institutions to the case of comorphisms. This is not just a dualization, because we obtain more general results, especially concerning amalgamation properties. We also introdu ..."
Abstract

Cited by 20 (11 self)
 Add to MetaCart
In order to obtain a semantic foundation for heterogeneous specification, we extend Diaconescu's morphismbased Grothendieck institutions to the case of comorphisms. This is not just a dualization, because we obtain more general results, especially concerning amalgamation properties. We also introduce a proof calculus for structured heterogeneous speci cations and study its soundness and completeness (where amalgamation properties play a r^ole for obtaining the latter).
Extending Development Graphs With Hiding
, 2001
"... Development graphs are a tool for dealing with structured specifications in a formal program development in order to ease the management of change and reusing proofs. In this work, we extend development graphs with hiding (e.g. hidden operations). Hiding is a particularly difficult to realize operat ..."
Abstract

Cited by 15 (10 self)
 Add to MetaCart
Development graphs are a tool for dealing with structured specifications in a formal program development in order to ease the management of change and reusing proofs. In this work, we extend development graphs with hiding (e.g. hidden operations). Hiding is a particularly difficult to realize operation, since it does not admit such a good decomposition of the involved specifications as other structuring operations do. We develop both a semantics and proof rules for development graphs with hiding. The rules are proven to be sound, and also complete relative to an oracle for conservative extensions. We also show that an absolute complete set of rules cannot exist. The whole framework is developed in a way independent of the underlying logical system (and thus also does not prescribe the nature of the parts of a specification that may be hidden).
The Development Graph Manager MAYA
, 2002
"... on inthelarge to exploit the structure of the speci cation, and maintains the veri cation work already done when changing the speci cation. Maya relies on development graphs as a uniform representation of structured speci cations, which enables the use of various (structured) speci cation lan ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
on inthelarge to exploit the structure of the speci cation, and maintains the veri cation work already done when changing the speci cation. Maya relies on development graphs as a uniform representation of structured speci cations, which enables the use of various (structured) speci cation languages like Casl [3] and VseSl [10] to formalise the software development. To this end Maya provides a generic interface to plug in additional parsers for the support of other speci cation languages. Moreover, Maya allows the integration of dierent theorem provers to deal with the actual proof obligations arising from the speci cation, i.e. to perform veri cation inthesmall. Textual speci cations are translated into a structured logical representation called a development graph [1, 4], which is based on the notions of consequence relations and morphisms and makes arising proof obligations explicit. The user can tackle these proof obligations with the help of theorem provers connecte
Heterogeneous development graphs and heterogeneous borrowing
 In M. Nielsen (Ed.) Foundations of Software Science and Computation Structures (FOSSACS02
, 2002
"... Abstract. Development graphs are a tool for dealing with structured specifications in a formal program development in order to ease the management of change and reusing proofs. Often, different aspects of a software system have to be specified in different logics, since the construction of a huge lo ..."
Abstract

Cited by 11 (7 self)
 Add to MetaCart
Abstract. Development graphs are a tool for dealing with structured specifications in a formal program development in order to ease the management of change and reusing proofs. Often, different aspects of a software system have to be specified in different logics, since the construction of a huge logic covering all needed features would be too complex to be feasible. Therefore, we introduce heterogeneous development graphs as a means to cope with heterogeneous specifications. We cover both the semantics and the proof theory of heterogeneous development graphs. A proof calculus can be obtained either by combining proof calculi for the individual logics, or by representing these in some “universal ” logic like higherorder logic in a coherent way and then “borrowing” its calculus for the heterogeneous language. 1
Foundations of Heterogeneous Specification
"... We provide a semantic basis for heterogeneous specifications that not only involve different logics, but also different kinds of translations between these. We show that Grothendieck institutions based on spans of (co)morphisms can serve as a unifying framework providing a simple but powerful semant ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
We provide a semantic basis for heterogeneous specifications that not only involve different logics, but also different kinds of translations between these. We show that Grothendieck institutions based on spans of (co)morphisms can serve as a unifying framework providing a simple but powerful semantics for heterogeneous specification.
Maintenance of Formal Software Developments by Stratified Verification
 In Proceedings 9th International Conference on Logic for Programming Artificial Intelligence and Reasoning, LNAI
, 2002
"... The development of industrialsize software is an evolutionary process based on structured specifications. In a formal setting, specification and verification are intertwined. Specifications are amended either to add new functionality or to fix bugs detected during the verification process. In this ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
The development of industrialsize software is an evolutionary process based on structured specifications. In a formal setting, specification and verification are intertwined. Specifications are amended either to add new functionality or to fix bugs detected during the verification process. In this paper we propose a system to maintain the verification of formal developments. It exploits the structure of the specification to reveal and eliminate redundant proof obligations and therefore constitutes itself a verification system inthelarge. Proofs in this system are represented as explicit proof objects allowing the system to adjust or reuse them in case the specification is changed.
ΩMEGA: Computer supported mathematics
 IN: PROCEEDINGS OF THE 27TH GERMAN CONFERENCE ON ARTIFICIAL INTELLIGENCE (KI 2004)
, 2004
"... The year 2004 marks the fiftieth birthday of the first computer generated proof of a mathematical theorem: “the sum of two even numbers is again an even number” (with Martin Davis’ implementation of Presburger Arithmetic in 1954). While Martin Davis and later the research community of automated dedu ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
The year 2004 marks the fiftieth birthday of the first computer generated proof of a mathematical theorem: “the sum of two even numbers is again an even number” (with Martin Davis’ implementation of Presburger Arithmetic in 1954). While Martin Davis and later the research community of automated deduction used machine oriented calculi to find the proof for a theorem by automatic means, the Automath project of N.G. de Bruijn – more modest in its aims with respect to automation – showed in the late 1960s and early 70s that a complete mathematical textbook could be coded and proofchecked by a computer. Classical theorem proving procedures of today are based on ingenious search techniques to find a proof for a given theorem in very large search spaces – often in the range of several billion clauses. But in spite of many successful attempts to prove even open mathematical problems automatically, their use in everyday mathematical practice is still limited. The shift
Implementing Logics: From Genericity to Heterogeneity
"... We show how to write an abstract interface corresponding to Meseguer's concept of general logic in Haskell. Based on this, we develop a tool set for structured specifications that are based on such logics, consisting of a parser, a static analysis and a theorem prover. While with Standard ML functor ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
We show how to write an abstract interface corresponding to Meseguer's concept of general logic in Haskell. Based on this, we develop a tool set for structured specifications that are based on such logics, consisting of a parser, a static analysis and a theorem prover. While with Standard ML functors, it is only possible to be generic over an arbitrary logic, we show how true heterogeneity (i.e. for specification involving simultaneously different logics) is achieved in Haskell. Concerning genericity, it is folklore that Standard ML functors can be simulated in Haskell using multiparameter type classes with functional dependencies. On top of this, heterogeneity is achieved using existential and dynamic types.
HETS User Guide – Version 0.73 –
, 2008
"... (the latter needs subscription to the mailing list) ..."