Results 1 -
3 of
3
An ALF Proof of the Mac Lane's Coherence Theorem
, 1995
"... A straightforward proof of the Coherence theorem for monoidal categories is presented in [2]. Here we describe the its formalisation within Martin-Löf type theory. The paper is organised as a commentary to the ALF proof files (recapitulated complete). In the current version the necessary categories ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
A straightforward proof of the Coherence theorem for monoidal categories is presented in [2]. Here we describe the its formalisation within Martin-Löf type theory. The paper is organised as a commentary to the ALF proof files (recapitulated complete). In the current version the necessary categories and functors are constructed, and the main lemma (nat) is proved for all cases, except mult and inverse arrows. The case mult was already proved in the version 3a (which used different definitions incompatible with version 4)
Formal Neighbourhoods, Combinatory Böhm Trees, and Untyped Normalization by Evaluation
, 2008
"... We prove the correctness of an algorithm for normalizing untyped combinator terms by evaluation. The algorithm is written in the functional programming language Haskell, and we prove that it lazily computes the combinatory Böhm tree of the term. The notion of combinatory Böhm tree is analogous to th ..."
Abstract
- Add to MetaCart
We prove the correctness of an algorithm for normalizing untyped combinator terms by evaluation. The algorithm is written in the functional programming language Haskell, and we prove that it lazily computes the combinatory Böhm tree of the term. The notion of combinatory Böhm tree is analogous to the usual notion of Böhm tree for the untyped lambda calculus. It is defined operationally by repeated head reduction of terms to head normal forms. We use formal neighbourhoods to characterize finite, partial information about data, and define a Böhm tree as a filter of such formal neighbourhoods. We also define formal topology style denotational semantics of a fragment of Haskell following Martin-Löf, and let each closed program denote a filter of formal neighbourhoods. We prove that the denotation of the output of our algorithm is the Böhm tree of the input term. The key construction in the proof is a ”glueing ” relation between terms and semantic neighbourhoods which is defined by induction on the latter. This relation is related to the glueing relation which was earlier used for proving the correctness of a normalization by evaluation algorithm for typed combinatory logic. 1
General Terms
"... We propose a new way to reason about general recursive functional programs in the dependently typed programming language Agda, which is based on Martin-Löf’s intuitionistic type theory. We show how to embed an external programming logic, Aczel’s Logical Theory of Constructions (LTC) inside Agda. To ..."
Abstract
- Add to MetaCart
We propose a new way to reason about general recursive functional programs in the dependently typed programming language Agda, which is based on Martin-Löf’s intuitionistic type theory. We show how to embed an external programming logic, Aczel’s Logical Theory of Constructions (LTC) inside Agda. To this end we postulate the existence of a domain of untyped functional programs and the conversion rules for these programs. Furthermore, we represent the inductive notions in LTC (intuitionistic predicate logic and totality predicates) as inductive notions in Agda. To illustrate our approach we specify an LTC-style logic for PCF, and show how to prove the termination and correctness of a general recursive algorithm for computing the greatest common divisor of two numbers. Categories and Subject Descriptors F.3.1 [Logics and meanings of programs]: Specifying and Verifying and Reasoning about Programs–Logics of programs; D.2.4 [Software Engineering]:

