THM0004canonicalv1Composition Associativity
Program composition is associative. A THEOREM, not an axiom: proved via normalization confluence (NF-Confluence Theorem).
Payload
Composition Associativity
Program composition is associative. A THEOREM, not an axiom: proved via normalization confluence (NF-Confluence Theorem).
Composition Associativity
Summary
Program composition is associative. A THEOREM, not an axiom: proved via normalization confluence (NF-Confluence Theorem).
Statement
%
\label{thm:comp-assoc}
Composition in $\mathcal{P}$ is associative:
for all programs $P, Q, R$,
\[
\boxed{[R] \circ ([Q] \circ [P])
= ([R] \circ [Q]) \circ [P].}
\]
Proof / Justification
Let $P, Q, R$ be programs.
$[R] \circ ([Q] \circ [P])
= [R] \circ [\text{NF}(Q \cdot P)]
= [\text{NF}(R \cdot \text{NF}(Q \cdot P))]$.
$([R] \circ [Q]) \circ [P]
= [\text{NF}(R \cdot Q)] \circ [P]
= [\text{NF}(\text{NF}(R \cdot Q) \cdot P)]$.
By the NF-Confluence Lemma~\ref{lem:nf-confluence},
$\text{NF}(R \cdot \text{NF}(Q \cdot P))
= \text{NF}(R \cdot Q \cdot P)
= \text{NF}(\text{NF}(R \cdot Q) \cdot P)$.
The key step is that normalization commutes with concatenation:
normalizing a sub-expression before concatenating
yields the same final normal form as normalizing the
entire expression at once.
This follows from the confluence of the reduction system.
Source Context
- Registry source:
book-01.jsonlline 30 - Manuscript source:
2nd-edition/book-i-categorical-foundations/02_mainmatter/part03/ch13-program-monoid.texlines 147-156
Lean / Formalization Notes
- Formalization:
formalized - Module:
TauLib.BookI.Denotation.ProgramMonoid - Name:
Tau.Denotation.comp_assoc
Dependencies
- Canonical: I.D14
Related Results
Generated by later projection phases.
Related Publications
Generated by later projection phases.
Revision Notes
- 2026-04-24: Initial pilot migration.
Identifiers
Aliases & legacy IDs
I.T03composition-associativitythm:comp-assocRelease lines
corpus_v3_workingcorpus_v2Relations
Formalized by (1)
Appears in (1)
Downstream uses (computed) (2)
Items in the corpus that reference this one via load-bearing relations. Computed from the full corpus-v3 graph at build time.
Sources
Version & History
Status disclaimer
A Corpus Item page reports the program's current internal record for this item. It does not imply external verification, scientific consensus, or final proof unless explicitly stated. Read it together with its dependencies, formalization status, and the program's overall stance.