#### Filter Results:

- Full text PDF available (17)

#### Publication Year

2008

2017

- This year (2)
- Last 5 years (8)
- Last 10 years (19)

#### Publication Type

#### Co-author

#### Publication Venue

#### Key Phrases

Learn More

We introduce permissive nominal terms. Nominal terms are one way to extend first-order terms with binding. They lack some properties of first-and higher-order terms: Terms must be reasoned on in a context of 'freshness assumptions'; it is not always possible to 'choose a fresh variable symbol' for a nominal term; and it is not always possible to… (More)

Recent years have seen remarkable successes in <i>rigorous engineering</i>: using mathematically rigorous semantic models (not just idealised calculi) of real-world processors, programming languages, protocols, and security mechanisms, for testing, proof, analysis, and design. Building these models is challenging, requiring experimentation, dialogue with… (More)

Weakly consistent multiprocessors such as ARM and IBM POWER have been with us for decades, but their subtle programmer-visible concurrency behaviour remains challenging, both to implement and to use; the traditional architecture documentation, with its mix of prose and pseudocode, leaves much unclear.
In this paper we show how a precise architectural… (More)

- Gilles Dowek, Murdoch James Gabbay, Dominic P. Mulligan
- Logic Journal of the IGPL
- 2010

Nominal terms extend first-order terms with binding. They lack some properties of first-and higher-order terms: Terms must be reasoned about in a context of 'freshness assumptions'; it is not always possible to 'choose a fresh variable symbol' for a nominal term; it is not always possible to 'α-convert a bound variable symbol' or to 'quotient by… (More)

- Murdoch James Gabbay, Dominic P. Mulligan
- LFMTP
- 2009

This paper develops the correspondence between equality reasoning with axioms using λ-terms syntax, and reasoning using nominal terms syntax. Both syntaxes involve name-abstraction: λ-terms represent functional abstraction; nominal terms represent atomsabstraction in nominal sets.
It is not evident how to relate the two syntaxes because their… (More)

- Murdoch James Gabbay, Dominic P. Mulligan
- LFMTP
- 2011

We investigate a class of nominal algebraic Henkin-style models for the simply typed λ-calculus in which variables map to names in the denotation and λ-abstraction maps to a (non-functional) name-abstraction operation. The resulting denotations are smaller and better-behaved, in ways we make precise, than functional valuation-based models. Using these new… (More)

Nominal terms use a characteristic combination of features: Two levels of variable: atoms a and unknowns X. Freshness conditions a#X and permutations π. An abstraction [a]r with a distinctive α-equivalence based on freshness and permutation. The first statement above is rendered in nominal terms as the equality judgement b#X ` [a]X =α [b](b a) ·X. a and b… (More)

- Murdoch James Gabbay, Dominic P. Mulligan
- WoLLIC
- 2008

The Curry-Howard correspondence connects Natural Deduction derivation with the lambda-calculus. Predicates are types, derivations are terms. This supports reasoning from assumptions to conclusions , but we may want to reason 'backwards' from the desired conclusion towards the assumptions. At intermediate stages we may have an 'incomplete derivation', with… (More)

- Murdoch James Gabbay, Dominic P. Mulligan
- Electr. Notes Theor. Comput. Sci.
- 2009

Two-level lambda-calculus is designed to provide a mathematical model of capturing substitution, also called instantiation. Instantiation is a feature of the 'informal meta-level'; it appears pervasively in specifications of the syntax and semantics of formal languages. The two-level lambda-calculus has two levels of variable. Lambda-abstraction and… (More)

- Roberto M. Amadio, Nicholas Ayache, +12 authors Paolo Tranquilli
- FOPARA
- 2013

We provide an overview of the FET-Open Project CerCo ('Certified Complexity'). Our main achievement is the development of a technique for analysing non-functional properties of programs (time, space) at the source level with little or no loss of accuracy and a small trusted code base. The core component is a C compiler, verified in Matita, that produces an… (More)