mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
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/.
91 lines
2.9 KiB
TeX
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}
|