Projects per year
Abstract
Consider two widely used definitions of equality. That of Leibniz: one value equals another if any predicate that holds of the first holds of the second. And that of MartinLöf: the type identifying one value with another is occupied if the two values are identical. The former dates back several centuries, while the latter is widely used in proof systems such as Agda and Coq. Here we show that the two definitions are isomorphic: we can convert any proof of Leibniz equality to one of MartinLöf identity and vice versa, and each conversion followed by the other is the identity. One direction of the isomorphism depends crucially on values of the type corresponding to Leibniz equality satisfying functional extensionality and Reynolds’ notion of parametricity. The existence of the conversions is widely known (meaning that if one can prove one equality then one can prove the other), but that the two conversions form an isomorphism (internally) in the presence of parametricity and functional extensionality is, we believe, new. Our result is a special case of a more general relation that holds between inductive families and their Church encodings. Our proofs are given inside type theory, rather than metatheoretically. Our paper is a literate Agda script.
Original language  English 

Article number  e17 
Number of pages  14 
Journal  Journal of Functional Programming 
Volume  30 
DOIs  
Publication status  Published  17 Jun 2020 
Fingerprint
Dive into the research topics of 'Theoretical Pearl: ≐≃≡ Leibniz equality is isomorphic to MartinLöf identity, parametrically'. Together they form a unique fingerprint.Projects
 1 Finished

From Data Types to Session Types  A Basis for Concurrency and Distribution
20/05/13 → 19/11/20
Project: Research