Files
papers/lux-model-checking-tla/lux-model-checking-tla.tex
zeekay dd93cb41f7 papers: cover-consistency + build pass on Lux Tier-2/3 catalogue
Sweep across the non-Tier-1 paper catalogue (Tier-1 owned by parallel
agent and excluded). All 113 processed papers already had luxcover
wired up; this commit fixes 14 build breakers and produces fresh
PDFs across the catalogue.

Fixes:
- lux-blockchain-scaling-laws: em-dash inside lstlisting -> --
- lux-corona-pq: stale \input pointing at 03-the-corona-scheme renamed
  to 03-the-corona-scheme (file already renamed on disk)
- lux-lattice-cryptography-primer: same Corona->Corona rename
- lux-formal-verification-lean4: Lean source uses unicode (×, ∀, ∃, ∈,
  ∧, ∨, ∩, ≠, ⟨, ⟩, ·, ¬) inside lstlistings. Added a literate map
  so listings render the math glyphs without UTF-8 fault.
- lux-id-did-specification: ✓/✗ in tabular replaced with \ding{51}
  / \ding{55} (pifont). Added pifont package.
- lux-ntt-simd-implementation: middle-dot in Go assembly listings;
  added literate {·}{\textperiodcentered}.
- lux-ntt-transform: μ, ×, –, — in regular text (no T1 fontenc).
  Replaced with $\mu$/$\times$/--/--- via unicode->latex sweep.
- lux-perpetuals-derivatives, lux-quantum-consensus,
  lux-quasar-consensus, lux-tee-computing-mesh: same unicode->latex
  sweep across body text. Also fixed broken math segment
  `$L_{avg} = 10$\times$$` -> `$L_{avg} = 10\times$`.
- lux-zchain: emoji glyphs in roadmap table replaced with
  parenthetical text.
- lux-triple-proof-consensus: dropped duplicate \usepackage{geometry}
  that clashed with luxcover (geometry option clash).
- pq: defined missing \Rq macro.

PDFs rebuilt for the full Tier-2/3 set.

Excluded (Tier-1, parallel agent): lp-073-pulsar, lp-stricte2epq,
dag-evm-formal, lp-010-quasar-stm-{3,4}, lp-020-quasar-consensus,
lux-institutional-custody, lux-nist-mptc-submission, pqsafe-il5,
pq-rns, plus shared/ and lps/.
2026-05-13 01:27:59 -07:00

91 lines
2.9 KiB
TeX

\documentclass[11pt,a4paper]{article}
\usepackage{../shared/luxcover}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{listings}
\input{../shared/lstlang}
\usepackage{xcolor}
\usepackage{enumitem}
\usepackage{float}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{definition}{Definition}
\newtheorem{remark}{Remark}
\lstdefinelanguage{TLA}{
morekeywords={MODULE,EXTENDS,CONSTANTS,VARIABLES,Init,Next,Spec,THEOREM,
ASSUME,LET,IN,IF,THEN,ELSE,CASE,OTHER,CHOOSE,SUBSET,UNION,DOMAIN,
UNCHANGED,ENABLED,TRUE,FALSE,Nat,Int,Seq,TLC,Integers,Sequences,FiniteSets},
morekeywords=[2]{TypeOK,Safety,Liveness,Fairness,Inv},
keywordstyle=[2]\color{purple}\bfseries,
morecomment=[l]{\\*},
morestring=[b]",
sensitive=true,
}
\lstset{
basicstyle=\small\ttfamily,
keywordstyle=\color{blue}\bfseries,
commentstyle=\color{gray},
stringstyle=\color{red},
breaklines=true,
frame=single,
numbers=left,
numberstyle=\tiny\color{gray}
}
\hypersetup{
colorlinks=true,
linkcolor=blue,
citecolor=blue,
urlcolor=blue
}
\title{Model Checking Distributed Protocols with TLA+}
\author{
Zach Kelling \\
Lux Industries, Inc.\thanks{Corresponding author: [email protected]}\\
\texttt{[email protected]}
}
\date{2025}
\begin{document}
\luxcoverpage
\begin{abstract}
Model checking exhaustively explores every reachable state of a system to verify that a
property holds universally. TLA+ (Temporal Logic of Actions) is a specification language
designed by Leslie Lamport for describing and verifying concurrent and distributed systems.
Its model checker, TLC, can enumerate billions of states to find subtle bugs that testing
misses. This paper teaches TLA+ from first principles: the temporal logic, the specification
language, the model checker, and the techniques for managing state space explosion. We then
apply these tools to two Lux Network protocols---Teleport (cross-chain bridge) and Wave
(sub-second finality)---showing the complete specifications, the properties checked, the
bugs found during specification, and the techniques used to make model checking tractable.
The reader will learn to write TLA+ specifications, run TLC, interpret violations, and
integrate model checking into a protocol development workflow.
\end{abstract}
\tableofcontents
\newpage
%% ============================================================
\input{sections/01-why-model-checking}
\input{sections/02-tla-fundamentals}
\input{sections/03-modeling-consensus-protocols}
\input{sections/04-the-teleport-specification}
\input{sections/05-the-wave-specification}
\input{sections/06-state-space-explosion}
\input{sections/07-from-specification-to-implementation}
\input{sections/08-practical-guide-your-first-tla-specifica}
\input{sections/99-conclusion}
\end{document}