6 research outputs found
Experience Implementing a Performant Category-Theory Library in Coq
We describe our experience implementing a broad category-theory library in
Coq. Category theory and computational performance are not usually mentioned in
the same breath, but we have needed substantial engineering effort to teach Coq
to cope with large categorical constructions without slowing proof script
processing unacceptably. In this paper, we share the lessons we have learned
about how to represent very abstract mathematical objects and arguments in Coq
and how future proof assistants might be designed to better support such
reasoning. One particular encoding trick to which we draw attention allows
category-theoretic arguments involving duality to be internalized in Coq's
logic with definitional equality. Ours may be the largest Coq development to
date that uses the relatively new Coq version developed by homotopy type
theorists, and we reflect on which new features were especially helpful.Comment: The final publication will be available at link.springer.com. This
version includes a full bibliography which does not fit in the Springer
version; other than the more complete references, this is the version
submitted as a final copy to ITP 201
Category Theory in Coq 8.5
We report on our experience implementing category theory in Coq 8.5. The
repository of this development can be found at
https://bitbucket.org/amintimany/categories/. This implementation most notably
makes use of features, primitive projections for records and universe
polymorphism that are new to Coq 8.5.Comment: This is the abstract for a talk accepted for a presentation at the
7th Coq Workshop, Sophia Antipolis, France on June 26, 201
Formal categorical reasoning
In this paper, we present a category theory library developed in the proof assistant Coq. We discuss the design principles of the library in comparison with those existing out there. To explicitly demonstrate the utility of the library, we conclude with a case study in which a Coq formalized soundness proof of the intuitionistic propositional logic within a category theoretical settings is examined
Event-B in the Institutional Framework: Defining a Semantics, Modularisation Constructs and Interoperability for a Specification Language
Event-B is an industrial-strength specification language for verifying
the properties of a given system’s specification. It is supported by its
Eclipse-based IDE, Rodin, and uses the process of refinement to model
systems at different levels of abstraction. Although a mature formalism,
Event-B has a number of limitations. In this thesis, we demonstrate that
Event-B lacks formally defined modularisation constructs. Additionally,
interoperability between Event-B and other formalisms has been
achieved in an ad hoc manner. Moreover, although a formal language,
Event-B does not have a formal semantics. We address each of these
limitations in this thesis using the theory of institutions.
The theory of institutions provides a category-theoretic way of representing
a formalism. Formalisms that have been represented as institutions
gain access to an array of generic specification-building operators
that can be used to modularise specifications in a formalismindependent
manner. In the theory of institutions, there are constructs
(known as institution (co)morphisms) that provide us with the facility to
create interoperability between formalisms in a mathematically sound
way.
The main contribution of this thesis is the definition of an institution
for Event-B, EVT, which allows us to address its identified limitations.
To this end, we formally define a translational semantics from Event-
B to EVT. We show how specification-building operators can provide
a unified set of modularisation constructs for Event-B. In fact, the institutional
framework that we have incorporated Event-B into is more
accommodating to modularisation than the current state-of-the-art for
Rodin. Furthermore, we present institution morphisms that facilitate interoperability between the respective institutions for Event-B and UML.
This approach is more generic than the current approach to interoperability
for Event-B and in fact, allows access to any formalism or logic
that has already been defined as an institution. Finally, by defining
EVT, we have outlined the steps required in order to include similar
formalisms into the institutional framework. Hence, this thesis acts as a
template for defining an institution for a specification language