https://github.com/epfl-systemf/linden
Formal Verification for JavaScript Regular Expressions
https://github.com/epfl-systemf/linden
Last synced: 9 months ago
JSON representation
Formal Verification for JavaScript Regular Expressions
- Host: GitHub
- URL: https://github.com/epfl-systemf/linden
- Owner: epfl-systemf
- Created: 2025-08-14T12:25:26.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-18T15:18:50.000Z (9 months ago)
- Last Synced: 2025-09-18T16:59:46.160Z (9 months ago)
- Language: Rocq Prover
- Size: 4.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Linden: Formal Verification for JavaScript Regular Expressions
==============================================================
Authors: [Aurèle Barrière](https://aurele-barriere.github.io/), [Victor Deng](https://victor-deng.fr/) and [Clément Pit-Claudel](https://pit-claudel.fr/clement/).
Related Preprint: [Formal Verification for JavaScript Regular Expressions: a Proven Semantics and its Applications](https://arxiv.org/abs/2507.13091). Appendix A provides a correspondence between paper definitions and the code.

# About
This repository contains mechanized proofs, in Rocq, about JavaScript Regular Expressions.
This includes:
- a new *backtracking tree* semantics for JavaScript regexes, in folder `Semantics`.
- a proof that this semantics is equivalent to the [Warblre](https://github.com/epfl-systemf/Warblre) mechanization of JavaScript regexes, in folder `WarblreEquiv`.
- a proof of the PikeVM linear-time matching algorithm supporting a subset of JavaScript regexes, in folder `Engine`. The algorithm is adapted to fit JavaScript unique quantifier semantics, following section 4.1 of [Linear Matching of JavaScript Regular Expressions](https://dl.acm.org/doi/10.1145/3656431).
- proof of JavaScript regex *contextual equivalences*, in folder `Rewriting`.
# Dependencies
- coq 8.18.0
- Warblre 0.1.0
- dune >= 3.14
# Usage
Build all proofs with `dune build`.