Generating collection transformations from proofs

<p>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...

Full description

Bibliographic Details
Main Authors: Benedikt, M, Pradic, P
Format: Journal article
Language:English
Published: Association for Computing Machinery 2021
_version_ 1797079280441622528
author Benedikt, M
Pradic, P
author_facet Benedikt, M
Pradic, P
author_sort Benedikt, M
collection OXFORD
description <p>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.</p> <p>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.</p> <p>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.</p>
first_indexed 2024-03-07T00:43:33Z
format Journal article
id oxford-uuid:83de5362-4f5d-4b27-a2f3-36c1cc6470fd
institution University of Oxford
language English
last_indexed 2024-03-07T00:43:33Z
publishDate 2021
publisher Association for Computing Machinery
record_format dspace
spelling oxford-uuid:83de5362-4f5d-4b27-a2f3-36c1cc6470fd2022-03-26T21:47:13ZGenerating collection transformations from proofsJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:83de5362-4f5d-4b27-a2f3-36c1cc6470fdEnglishSymplectic ElementsAssociation for Computing Machinery2021Benedikt, MPradic, P<p>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.</p> <p>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.</p> <p>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.</p>
spellingShingle Benedikt, M
Pradic, P
Generating collection transformations from proofs
title Generating collection transformations from proofs
title_full Generating collection transformations from proofs
title_fullStr Generating collection transformations from proofs
title_full_unstemmed Generating collection transformations from proofs
title_short Generating collection transformations from proofs
title_sort generating collection transformations from proofs
work_keys_str_mv AT benediktm generatingcollectiontransformationsfromproofs
AT pradicp generatingcollectiontransformationsfromproofs