https://arxiv.org/abs/1311.3903 close this message Donate to arXiv Please join the Simons Foundation and our generous member organizations in supporting arXiv during our giving campaign September 23-27. 100% of your contribution will fund improvements and new initiatives to benefit arXiv's global scientific community. DONATE [secure site, no need to create account] Skip to main content Cornell University We gratefully acknowledge support from the Simons Foundation and member institutions. arXiv.org > cs > arXiv:1311.3903 [ ] Help | Advanced Search [All fields ] Search arXiv Cornell University Logo [ ] GO quick links * Login * Help Pages * About Computer Science > Logic in Computer Science arXiv:1311.3903 (cs) [Submitted on 13 Nov 2013] Title:A Categorical Theory of Patches Authors:Samuel Mimram (LIST), Cinzia Di Giusto (LIST) Download PDF Abstract: When working with distant collaborators on the same documents, one often uses a version control system, which is a program tracking the history of files and helping importing modifications brought by others as patches. The implementation of such a system requires to handle lots of situations depending on the operations performed by users on files, and it is thus difficult to ensure that all the corner cases have been correctly addressed. Here, instead of verifying the implementation of such a system, we adopt a complementary approach: we introduce a theoretical model, which is defined abstractly by the universal property that it should satisfy, and work out a concrete description of it. We begin by defining a category of files and patches, where the operation of merging the effect of two coinitial patches is defined by pushout. Since two patches can be incompatible, such a pushout does not necessarily exist in the category, which raises the question of which is the correct category to represent and manipulate files in conflicting state. We provide an answer by investigating the free completion of the category of files under finite colimits, and give an explicit description of this category: its objects are finite sets labeled by lines equipped with a transitive relation and morphisms are partial functions respecting labeling and relations. Subjects: Logic in Computer Science (cs.LO); Category Theory (math.CT) Journal reference: MFPS - Mathematical Foundations of Programming Semantics 298 (2013) 283-307 DOI: 10.1016/j.entcs.2013.09.018 Cite as: arXiv:1311.3903 [cs.LO] (or arXiv:1311.3903v1 [cs.LO] for this version) Submission history From: Samuel Mimram [view email] [via CCSD proxy] [v1] Wed, 13 Nov 2013 20:19:47 UTC (73 KB) Full-text links: Download: * PDF * PostScript * Other formats (license) Current browse context: cs.LO < prev | next > new | recent | 1311 Change to browse by: cs math math.CT References & Citations * NASA ADS * Google Scholar * Semantic Scholar DBLP - CS Bibliography listing | bibtex Samuel Mimram Cinzia Di Giusto a export bibtex citation Loading... Bibtex formatted citation x [loading... ] Data provided by: Bookmark BibSonomy logo Mendeley logo Reddit logo ScienceWISE logo (*) Bibliographic Tools Bibliographic and Citation Tools [ ] Bibliographic Explorer Toggle Bibliographic Explorer (What is the Explorer?) ( ) Code Code Associated with this Article [ ] arXiv Links to Code Toggle arXiv Links to Code (What is Links to Code?) ( ) Related Papers Recommenders and Search Tools [ ] Connected Papers Toggle Connected Papers (What is Connected Papers?) [ ] Core recommender toggle CORE Recommender (What is CORE?) ( ) About arXivLabs arXivLabs: experimental projects with community collaborators arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website. Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them. Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs and how to get involved. Which authors of this paper are endorsers? | Disable MathJax (What is MathJax?) * About * Help * Click here to contact arXiv Contact * Click here to subscribe Subscribe * Copyright * Privacy Policy * Web Accessibility Assistance * arXiv Operational Status Get status notifications via email or slack