LICS 2025: References to the Rocq development
This page presents the artifact associated with the LICS 2025 article
Functional Stream Semantics for a Synchronous Block-Diagram
Compiler, by T. Bourke,
P. Jeanmaire, and M. Pouzet.
The following links relate the sections of the article to relevant
definitions of the Coq development.
The full Coq
source code is
available on github.
Some names differ between the article and the Rocq source. The links refer
to names from the article and Rocq names are given in parentheses.
I.B Compiler correctness
II.A Abstract Syntax
We define a subset of the full Lustre syntax of Vélus using the following predicates:
The type of clocks.
II.B Relational Semantics
II.C The CPO library
Imported from C. Paulin-Mohring.
Generic definitions
Stream definitions
III.A Values
III.B Fixpoint semantics of nodes
III.C Synchronous stream operators
Constants
- const: constants in Vélus
- sconst: denotational synchronous constant stream
- ok_const: correspondence lemma
Binary operators
- lift2: relational lifting of binary operators
- sbinop: denotational lifting of binary operators
- ok_binop: correspondence lemma
Sampling operator
- when: relational sampling operator
- swhen: denotational sampling operator
- ok_when: correspondence lemma
Delay
- fby: relational delay operator
- fby: denotational delay operator
- ok_fby: correspondence lemma
III.D Resettable node instances
- mask: the mask relational operator
- Sapp: the relational smemantic rule for node instances
- reset: characterization of reset à la Lucid Synchrone
- merge' / expecta: the speculative definition of merge
- sreset: characterization of denotation reset
- theorem 2 (reset_match): correspondence of the two characterizations
- theorem 3 (ok_reset): correspondence of denotational and relational reset
Three main properties:
III.E Causality errors
III.F Typing and runtime errors
IV Compiler Correctness
IV.A A Simple static analysis
V Paragraph on dependently-typed synchronous semantics
From Boulmé and Hamon, adapted to the new Coq syntax by Keller.