Proof of Go 1.23's sync.Map
  • Rocq Prover 95%
  • Go 4.3%
  • Verilog 0.3%
  • Dafny 0.2%
  • Makefile 0.1%
  • Other 0.1%
Find a file
2025-12-01 14:06:05 -06:00
.devcontainer Bump docker image version 2025-08-30 11:20:24 -05:00
.vscode Initial version 2025-08-30 10:27:21 -05:00
dafny Initial version 2025-08-30 10:27:21 -05:00
etc Initial version 2025-08-30 10:27:21 -05:00
go Fix another translation issue 2025-11-22 12:34:45 -06:00
perennial@f17fe1dedf Bump perennial 2025-11-24 10:38:22 -06:00
src Fix another translation bug 2025-12-01 14:06:05 -06:00
.gitignore Initial version 2025-08-30 10:27:21 -05:00
.gitmodules Initial version 2025-08-30 10:27:21 -05:00
_CoqProject Initial version 2025-08-30 10:27:21 -05:00
Makefile Initial version 2025-08-30 10:27:21 -05:00
README.md Fix README 2025-11-22 12:33:18 -06:00

Systems verification sync.Map proof

This repo has the setup for verifying the Go 1.23 standard library sync.Map.

It was derived from the proof assignment repo for CS 839: Systems verification, taught at UW-Madison in Fall 2025 by Tej Chajed.

Once you have Rocq installed, build the provided code by running make.

The goose translation of this code has some bugs related to generics: they have been fixed after translation with this sed command:

./etc/update-goose.sh
gsed -i 's/#\(entry\|Map\)/\1/g' src/code/sys_verif_code/go_sync_map.v