Imp2Rocq: An IDE for Program Verification in Rocq via the Language Server Protocol
This repository has been archived on 2026-10-16. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Rust 84.3%
  • Typst 9.2%
  • TypeScript 4.8%
  • TeX 0.8%
  • Coq 0.5%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-14 12:42:40 +02:00
.vscode Updated run task to also work on windows 2026-03-11 14:43:37 +01:00
debug-workspace Merge remote-tracking branch 'origin/main' 2026-05-05 13:29:17 +02:00
examples work on report 2026-05-05 12:49:46 +02:00
extension remove unused provides keyword 2026-05-12 12:29:28 +02:00
language-server remove unused provides keyword 2026-05-12 12:29:28 +02:00
parser . 2026-05-04 15:14:25 +02:00
project-report finish the report 2026-05-14 12:42:40 +02:00
.gitignore play around with vsrocqtop lsp 2026-03-12 12:55:39 +01:00
architecture.excalidraw update diagram 2026-03-19 13:22:38 +01:00
README.md finish the report 2026-05-14 12:42:40 +02:00

Imp2Rocq

A Visual Studio Code extension that allows developers to write and verify Imp programs with Rocq without leaving the editor.

Read the report!

Requirements

The extension has been tested with vsrocq-language-server version 2.3.4 with Rocq 9.1.0.

For the language server to run properly vsrocqtop must be installed on the host machine. This is also a requirement for VsRocq to work so you should just follow their requirements.

Imp2Rocq must also know the location of the Software Foundations Volume 2 book on your machine (it must be compiled with make): https://softwarefoundations.cis.upenn.edu/plf-current/index.html.

On startup, Imp2Rocq will prompt you to supply the path to the book on your machine as a VS Code setting.

Also rust/cargo needs to be installed for debugging.

To run

  1. In VS Code, press F5 to open a new window with the extension enabled.
  2. In the new window, create a file with the .imp extension and write Imp code with contracts. See /debug-workspace for example programs.

If your pre- or postconditions starts having suboptimal squiggly lines, this might be because the vsrocqtop process is tired and you can reload the editor with the command palette command "Developer: Reload Window".

Known issues

  • contracts correctly registers multiple keywords on one line, but not on multiple lines
  • typing non-ascii characters (æøå) in imp files breaks the extension silently