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.