Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Glossary

  • PR: Pull request. It’s a proposal to merge code changes into the main branch, and allows collaborators to review and suggest modifications before it’s accepted.

  • Branch: A branch contains a different history of code changes (commits). You can start a new branch A’ off of any branch A and push new commits to A’ without affecting the contents of A. Merging branch A’ into A adds all new changes from A’ to A.

  • RFC: Request for Comments. It is a design proposal, often written before or alongside major changes.

  • Essence: A high level constraint modelling language. Essence is declarative, i.e. it states the problem rather than how to solve it. It also lets us model things at the class level.

    • A class-level model (i.e. description of a problem) may have some parameters. To get from a class-level model to an instance model, we provide concrete values for all the parameters.

      The following describes a problem class:

      given N: int
      find x
      such that x < N
      

      The following are instances of that class:

      letting N be 3
      find x
      such that x < N
      
      letting N be 42
      find x
      such that x < N
      
  • Conjure: Constraint modelling tool that translates Essence problem descriptions into Essence’ models that constraint solvers can execute.

  • Essence’ (Essence prime): Intermediate representation automatically generated by Conjure

  • Savile Row: It transforms high level Essence’ constraint models and outputs solver-specific model that can be executed. Written in Java.

  • Minion: Constraint solver. It takes low level constraint models (like Savile Row output) and searches for solutions. Specifically, it has its own input language that is extensively documented.

For an in-depth glossary of GitHub terms, see the GitHub Docs Glossary. This Git Cheat Sheet also contains resources about git commands.