Geb

1. Introduction🔗

Geb is a programming language whose first-class notions include "programming language" itself. Its specification, interpreter, and compiler are developed as formal mathematics; this repository develops that mathematics in Lean 4 against mathlib.

Two disciplines shape the development. The first is constructive: no noncomputable definitions, with Classical reasoning minimised and tracked module by module. The second is upstream-directed: content is authored to be plausibly upstreamable, with Geb/Mathlib/ targeting mathlib4, Geb/Cslib/ targeting CSLib, GebLang/ targeting mathlib4 or CSLib by each module's own import closure, and Geb/Prototypes/ holding constructions whose written form is not yet settled and which are therefore not yet directed at either upstream.

The chapters that follow present the implemented mathematics one area at a time, in dependency order, with type-checked references into the source.

The libraries are also rendered in full by Verso's literate pipeline, one page per module, at the literate site.