No Cover Image

Journal article 487 views 64 downloads

Generating collection transformations from proofs

Michael Benedikt, Cécilia Pradic Orcid Logo

Proceedings of the ACM on Programming Languages, Volume: 5, Issue: POPL, Pages: 1 - 28

Swansea University Author: Cécilia Pradic Orcid Logo

  • 57933.pdf

    PDF | Version of Record

    © 2021 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution 4.0 International License

    Download (363.05KB)

Check full text

DOI (Published version): 10.1145/3434295

Abstract

Nested relations, built up from atomic types via product and set types, form a rich data model. Over the last decades the nested relational calculus, NRC, has emerged as a standard language for defining transformations on nested collections. NRC is a strongly-typed functional language which allows b...

Full description

Published in: Proceedings of the ACM on Programming Languages
ISSN: 2475-1421
Published: Association for Computing Machinery (ACM) 2021
Online Access: Check full text

URI: https://cronfa.swan.ac.uk/Record/cronfa57933
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract: Nested relations, built up from atomic types via product and set types, form a rich data model. Over the last decades the nested relational calculus, NRC, has emerged as a standard language for defining transformations on nested collections. NRC is a strongly-typed functional language which allows building up transformations using tupling and projections, a singleton-former, and a map operation that lifts transformations on tuples to transformations on sets.In this work we describe an alternative declarative method of describing transformations in logic. A formula with distinguished inputs and outputs gives an implicit definition if one can prove that for each input there is only one output that satisfies it. Our main result shows that one can synthesize transformations from proofs that a formula provides an implicit definition, where the proof is in an intuitionistic calculus that captures a natural style of reasoning about nested collections. Our polynomial time synthesis procedure is based on an analog of Craig’s interpolation lemma, starting with a provable containment between terms representing nested collections and generating an NRC expression that interpolates between them.We further show that NRC expressions that implement an implicit definition can be found when there is a classical proof of functionality, not just when there is an intuitionistic one. That is, whenever a formula implicitly defines a transformation, there is an NRC expression that implements it.
College: Faculty of Science and Engineering
Funders: UKRI (EPSRC)
Issue: POPL
Start Page: 1
End Page: 28