Skip to content

CoSy

CoSy logo

Package PyPI - Version
License License
Coverage codecov
Typed/Type-Checked Checked with mypy
Linted/Formatted Checked with Ruff
Managed with Hatch project
  • Start synthesizing


    Install combinatory-synthesizer with pip, read an example, and begin synthesizing, all in a few minutes.

    Quick Start

  • Specify concisely


    Use the powerful constraint system of CoSy to generate only the most relevant solutions.

    Constraints

  • Discover advanced features


    Learn how users familiar with combinatory logic synthesis can access CoSy's internals to precisely control synthesis.

    Advanced

  • Look at examples


    Browse a wide selection of examples to kick-start development of your own synthesis projects.

    Examples

  • Understand best practices


    Understand how to model different types of problems to best capitalize on the performance enhancements of CoSy.

    Best Practice

  • Troubleshoot common errors


    Find out how to avoid and debug common sources of errors and unexpected behaviour during development.

    Troubleshoot


About

CoSy is short for Combinatory Synthesizer. It is an easy to use, comfortable, even cosy, framework that allows synthesizing target artifacts from modular compontents. Due to the domain-agnostic nature of the framework (while implemented in python, arbitrary artifacts can be created), it is by-and-large applicable to any use-case that benefits or inherently makes use of modularization.

Papers

There is a large body of work concerning combinatory logic synthesis, utilizing CoSy (formerly known as the CLS-framework). It has been applied to robotics, logistics, CAD assemblies, factory planning, and many other areas. An overview over relevant literature, split into applications of CoSy and the theory behind it, is found in the following.

  • Finite Combinatory Logic with Predicates


    Dudenhefner, Andrej, Christoph Stahl, et al. Finite Combinatory Logic with Predicates. Schloss Dagstuhl -- Leibniz-Zentrum für Informatik, 2024.

  • Finite Combinatory Logic Extended by a Boolean Query Language for Composition Synthesis


    Dudenhefner, Andrej, Felix Laarmann, et al. "Finite Combinatory Logic Extended by a Boolean Query Language for Composition Synthesis." 29th International Conference on Types for Proofs and Programs TYPES 2023---Abstracts, 2023, p. 105.

  • A Type-Theoretic Framework for Software Component Synthesis


    Bessai, Jan. A Type-Theoretic Framework for Software Component Synthesis. 2019. TU Dortmund University, PhD thesis.

  • Algorithmic Aspects of Type-Based Program Synthesis


    Dudenhefner, Andrej. Algorithmic Aspects of Type-Based Program Synthesis. 2019. TU Dortmund University, PhD thesis.

  • CLS-SMT: Bringing Together Combinatory Logic Synthesis and Satisfiability Modulo Theories


    Kallat, Fadil, et al. "CLS-SMT: Bringing Together Combinatory Logic Synthesis and Satisfiability Modulo Theories." Proceedings Sixth Workshop on Proof eXchange for Theorem Proving, PxTP 2019, Natal, Brazil, August 26, 2019, edited by Giselle Reis and Haniel Barbosa, vol. 301, 2019, p. 51---65.

  • User Support for the Combinator Logic Synthesizer Framework


    Bessai, Jan, and Anna Vasileva. "User Support for the Combinator Logic Synthesizer Framework." Proceedings 4th Workshop on Formal Integrated Development Environment, f-IDE@FLoC 2018, Oxford, England, 14 July 2018, edited by Paolo Masci et al., vol. 284, 2018, p. 16---25.

  • Combinatory Synthesis of Classes Using Feature Grammars


    Bessai, Jan, Boris Düdder, et al. "Combinatory Synthesis of Classes Using Feature Grammars." Formal Aspects of Component Software: 12th International Conference, FACS 2015, Niterói, Brazil, October 14-16, 2015, Revised Selected Papers 12, Springer, 2016, p. 123---140.

  • A Long and Winding Road Towards Modular Synthesis


    Heineman, George, Jan Bessai, et al. "A Long and Winding Road Towards Modular Synthesis." Leveraging Applications of Formal Methods, Verification and Validation: Foundational Techniques: 7th International Symposium, ISoLA 2016, Imperial, Corfu, Greece, October 10---14, 2016, Proceedings, Part i 7, Springer, 2016, p. 303---317.

  • Mixin Composition Synthesis Based on Intersection Types


    Bessai, Jan, Andrej Dudenhefner, Boris Düdder, Tzu-Chun Chen, et al. "Mixin Composition Synthesis Based on Intersection Types." 13th International Conference on Typed Lambda Calculi and Applications (TLCA 2015), edited by Thorsten Altenkirch, vol. 38, Schloss Dagstuhl --- Leibniz-Zentrum für Informatik, 2015, p. 76---91.

  • Towards Migrating Object-Oriented Frameworks to Enable Synthesis of Product Line Members


    Heineman, George, Armend Hoxha, et al. "Towards Migrating Object-Oriented Frameworks to Enable Synthesis of Product Line Members." Proceedings of the 19th International Conference on Software Product Line, 2015, p. 56---60.

  • Combinatory Logic Synthesizer


    Bessai, Jan, Andrej Dudenhefner, Boris Düdder, Moritz Martens, and Jakob Rehof. "Combinatory Logic Synthesizer." Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change - 6th International Symposium, ISoLA 2014, Imperial, Corfu, Greece, October 8-11, 2014, Proceedings, Part I, edited by Tiziana Margaria and Bernhard Steffen, vol. 8802, Springer, 2014, p. 26---40.

  • Staged Composition Synthesis


    Düdder, Boris, Moritz Martens, and Jakob Rehof. "Staged Composition Synthesis." Programming Languages and Systems: 23rd European Symposium on Programming, ESOP 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014, Proceedings 23, Springer, 2014, p. 67---86.

  • Towards Combinatory Logic Synthesis


    Rehof, Jakob. "Towards Combinatory Logic Synthesis." 1st International Workshop on Behavioural Types, BEAT, 2013.

  • Bounded Combinatory Logic


    Düdder, Boris, Moritz Martens, Jakob Rehof, and Paweł Urzyczyn. "Bounded Combinatory Logic." Computer Science Logic (CSL'12) - 26th International Workshop/21st Annual Conference of the EACSL, CSL 2012, September 3-6, 2012, Fontainebleau, France, edited by Patrick Cégielski and Arnaud Durand, vol. 16, Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2012, p. 243---258.

  • Finite Combinatory Logic with Intersection Types


    Rehof, Jakob, and Paweł Urzyczyn. "Finite Combinatory Logic with Intersection Types." Typed Lambda Calculi and Applications - 10th International Conference, TLCA 2011, Novi Sad, Serbia, June 1-3, 2011. Proceedings, edited by C.-H. Luke Ong, vol. 6690, Springer, 2011, p. 169---183.