## HASCASL: Integrated Higher-Order Specification and Program Development

Citations: | 2 - 1 self |

### BibTeX

@MISC{Schröder_hascasl:integrated,

author = {Lutz Schröder and Till Mossakowski},

title = {HASCASL: Integrated Higher-Order Specification and Program Development},

year = {}

}

### OpenURL

### Abstract

We lay out the design of HasCasl, a higher order extension of the algebraic specification language Casl that serves both as a wide-spectrum language for the rigorous specification and development of software, in particular but not exclusively in modern functional programming languages, and as an expressive standard language for higher-order logic. Distinctive features of HasCasl include partial higher order functions, higher order subtyping, shallow polymorphism, and an extensive typeclass mechanism. Moreover, HasCasl provides dedicated specification support for monad-based functional-imperative programming with generic side effects, including a monad-based generic Hoare logic.

### Citations

254 |
Abstract and Concrete Categories
- Adámek, Herrlich, et al.
- 1990
(Show Context)
Citation Context ...ls with a classical internal logic but without unique choice are obtained as models over set-based quasitoposes, such as the categories of pseudotopological spaces or (reflexive, symmetric) relations =-=[2]-=-. In such models, the coarse types are precisely those that are interpreted as indiscrete objects, where an object is indiscrete if all identity maps into it are morphisms. E.g. in the quasitopos of (... |

108 |
Proofs as programs
- Bates, Constable
- 1985
(Show Context)
Citation Context ... intuitionistic opens up a number of possibilities that are not fully available in classical frameworks. E.g., intuitionistic logics offer better facilities for program extraction than classical ones =-=[40,4,42]-=-. Moreover, many useful theories and principles are consistent with intuitionistic but not with classical logics; this includes e.g. set-theoretic parametric polymorphism [63] or an axiom stating that... |

89 |
All About Maude - A HighPerformance Logical Framework: How to Specify
- Clavel, Durán, et al.
- 2007
(Show Context)
Citation Context ...eover, for monads, P-logic only offers equational reasoning, whereas HasCasl offers a Hoare logic for imperative monad-based programs. Other approaches such as CaféOBJ [16] and the related tool Maude =-=[12]-=- opt for making the specification language itself directly executable, however at the expense of a reduced expressivity of the logic. VDM [32] and Z [78] are model-oriented specification languages, i.... |

48 |
I borrow your logic? (Transporting logical structure along maps
- Cerioli, Meseguer
(Show Context)
Citation Context ...rowing of entailment systems for basic specifications, i.e. for every signature Σ in I, every set Φ of Σ-sentences, and every Σ-sentence ψ, ψ is a consequence of Φ iff αΣ(ψ) is a consequence of αΣ[Φ] =-=[11]-=- (where ‘only if’ holds in general). If µ is even model-bijective, i.e. if the βΣ are bijective on models (but not necessarily on model morphisms), then µ admits borrowing of entailment and refinement... |

36 | The Requirement and Design Specification Language Spectrum: an Informal Introduction
- Broy, Facchi, et al.
- 1993
(Show Context)
Citation Context ...uctured specification constructs. Similar comments apply to other higher-order theorem provers such as PVS [56]. Existing dedicated higher-order frameworks for software specification include Spectrum =-=[8]-=- and RAISE [21]. Spectrum is in some ways a precursor of HasCasl, in particular supports higher-order functional programming and offers a type class system (without constructor classes). It is however... |

22 |
Categorical models of Abadi-Plotkin’s logic for parametricity
- Birkedal, Møgelberg
(Show Context)
Citation Context ...as a full subcategory into the effective topos, whose objects however have a much more involved description than ω-sets [60]. Quasitoposes also play a role in the semantics of parametric polymorphism =-=[7]-=-. It thus seems worthwhile to admit quasitopos models. 3 Type Class Polymorphism On top of the basic HasCasl logic, we now introduce a form of syntaxoriented shallow type class polymorphism. That is, ... |

9 |
Free objects and equational deduction for partial conditional specifications
- Astesiano, Cerioli
- 1995
(Show Context)
Citation Context ...ionality is discussed e.g. in [43,44]. The notion chosen for HasCasl is that of intensional Henkin models. Intensional models behave well w.r.t. existence of initial models (unlike extensional models =-=[3]-=-) and, unlike standard models, admit a complete deduction system (completeness for extensional models is at least difficult [44]). Moreover, they are the natural models for intuitionistic higher order... |

7 | R.: Fixed points of type constructors and primitive recursion
- Abel, Matthes
- 2004
(Show Context)
Citation Context ...e annotation + or −, respectively, to the corresponding constructor kind or to type variable declarations (similar ideas appear already in [10]; the notation used here is the one applied also e.g. in =-=[1]-=-). E.g., the list constructor might sensibly be declared to be covariant by writing var type a : +Type List a : Type (or shortly List : +Type → Type). We do not provide dedicated syntax for invariance... |

1 |
Developing a HasCasl library for the Haskell prelude
- Cabral
(Show Context)
Citation Context ...fications and the development of suitable dedicated tactics is the subject of ongoing work. Experimental work on the verification of the Haskell prelude against a HasCasl specification is in progress =-=[9]-=-. An open issue in the language design of HasCasl itself is the specification of nested polymorphism as supported by the Glasgow extensions of Haskell [59], i.e. to find a workaround for the fact that... |