Automic VaultAutomic Vault

brew

Install ott with Homebrew, apt, MacPorts, Nix

Tool for writing definitions of programming languages and calculi. Version 0.34 via Homebrew; verified 2026-06-22.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install ott

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install ott

MacPorts ports tree · devel/ott/Portfile · source: api.github.com

Linux

Debian aptverified · 92%
sudo apt install libcoq-ott

Debian stable package indexes · libcoq-ott · source: deb.debian.org

Nixverified · 92%
nix profile install nixpkgs#ott

nixpkgs package indexes · pkgs/by-name/ot/ott/package.nix · source: api.github.com

overview

Package summary

Tool for writing definitions of programming languages and calculi

Commands and aliases

  • ott

history

Project history and usage

Ott is a tool and metalanguage for writing definitions of programming languages and calculi. It lets semanticists write syntax, binding structure, and inference rules once, then generate LaTeX, Coq, HOL, Isabelle/HOL, Lem, OCaml, and related artifacts.

Project history

Ott was principally developed by Peter Sewell, Francesco Zappa Nardelli, and Scott Owens, with a wider contributor group. Its design was published at ICFP 2007 and then as a Journal of Functional Programming article in January 2010.

The project arose from a specific pain point in programming-language research: full-scale semantic definitions are valuable but hard to keep consistent when they live only in informal mathematics or inside a single proof assistant. Ott's answer was a readable ASCII notation plus sanity checking and code generation into both publication and mechanized-proof formats.

Adoption history

The Ott manual and repository document examples spanning untyped and simply typed lambda calculi, ML polymorphism, POPLmark F<:, TAPL systems, a Leroy-style module system, Lightweight Java, Java module-system work, and a substantial OCaml-light semantics. The JFP paper reports larger case studies including OCaml light with 310 rules and mechanized soundness results.

Ott's adoption is strongest in programming-languages research, where the same source definition can support papers, collaborative editing, and proof assistant artifacts. The 2010 'Ott or Nott' workshop abstract is a useful adoption signal: it presents Ott as part of a working language-design process, not merely as a backend generator.

How it is used

A typical user writes an .ott source file describing object-language syntax and semantic judgments, then invokes ott with one or more -o outputs such as .tex, .v, .thy, HOL script, Lem, or OCaml files. The tool can also filter embedded terms in LaTeX, Coq, Isabelle/HOL, Lem, or OCaml source.

The generated artifacts reduce drift between the published rules, the parser-level syntax, and the formal definitions used for mechanized reasoning. For package users, the command-line binary is the bridge between a research notation and several proof and documentation ecosystems.

Why package nerds care

Ott is a rare package that is both a compiler-like CLI and a research infrastructure artifact. Its package value comes from reproducibility: a language-definition source can be checked, regenerated, versioned, and consumed by multiple proof assistants and typesetting workflows.

Timeline

  • 2007: Ott was presented at ICFP as 'Effective Tool Support for the Working Semanticist'.
  • 2010: The Journal of Functional Programming article expanded the Ott design, motivation, and case studies.
  • 2010: 'Ott or Nott' discussed the experience of using Ott in programming-language design and mechanized-metatheory workflows.
  • 2024: The GitHub README stated that Ott remained in continuous use.

Related projects

  • Ott sits alongside Coq, HOL, Isabelle/HOL, Lem, OCaml, LaTeX, POPLmark, TAPL-style calculi, Lightweight Java, and OCaml-light semantics work.

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:programming language

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 8 platform targets.
  • Build metadata lists 4 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
ottcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version0.34
manager updated2026-06-22
local dataok
upstreamcurrent
latest detected0.34

https://github.com/ott-lang/ott

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:ott
Version0.34
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/ott
Homepagehttps://www.cl.cam.ac.uk/~pes20/ott/
Repositoryhttps://github.com/ott-lang/ott
Upstream docshttps://github.com/ott-lang/ott#readme
LicenseBSD-3-Clause
Source archivehttps://github.com/ott-lang/ott/archive/refs/tags/0.34.tar.gz
Last updated2026-06-22T14:05:47-07:00
Pulseupdated
Build dependenciesgmp, ocaml, opam, pkgconf
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameott
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

libcoq-ott 0.34+ds-1+b4

Ott tool (Coq plugin)

https://github.com/ott-lang/ott

sudo apt install libcoq-ott
  • Section: ocaml
  • Architecture: amd64
  • Source Package: ott
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Ott
Debian stable package indexes · deb.debian.org · Debian stable package indexes: libcoq-ott from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Debian apt95%

ott-tools 0.34+ds-1+b4

Ott tool (executable)

https://github.com/ott-lang/ott

sudo apt install ott-tools
  • Section: ocaml
  • Architecture: amd64
  • Source Package: ott
  • 1 dependencies
  • normalized package name match
  • Matched by: Ott
Debian stable package indexes · deb.debian.org · Debian stable package indexes: ott-tools from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

ott

nix profile install nixpkgs#ott
  • normalized package name match
  • Matched by: Ott
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/ot/ott/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

libcoq-ott 0.33+ds-2build3

Ott tool (Coq plugin)

https://github.com/ott-lang/ott

sudo apt install libcoq-ott
  • Section: universe/ocaml
  • Architecture: amd64
  • Source Package: ott
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Ott
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: libcoq-ott from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
Ubuntu apt95%

ott-tools 0.33+ds-2build3

Ott tool (executable)

https://github.com/ott-lang/ott

sudo apt install ott-tools
  • Section: universe/ocaml
  • Architecture: amd64
  • Source Package: ott
  • 1 dependencies
  • normalized package name match
  • Matched by: Ott
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: ott-tools from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
MacPorts95%

ott

sudo port install ott
  • normalized package name match
  • Matched by: Ott
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/ott/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment