Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
86ba7d0
add details
sskeirik Dec 4, 2025
72f85bd
add interface byte counts
sskeirik Dec 4, 2025
f060111
add initial report skeleton
sskeirik Dec 5, 2025
1f7743b
update proof sketch
sskeirik Dec 9, 2025
1733f04
clarify proof structure in report
sskeirik Dec 10, 2025
f4fa74f
update proof sketch
sskeirik Dec 10, 2025
3515fdb
add instruction variant analysis
sskeirik Dec 11, 2025
6141ec2
add initialize mint cases
sskeirik Dec 11, 2025
0dcabdd
add initialize account cases
sskeirik Dec 11, 2025
f3274a7
further improve report text
sskeirik Dec 12, 2025
d3907ce
add more cases to report
sskeirik Dec 17, 2025
735eaad
add extra cases to the report
sskeirik Dec 19, 2025
9522c17
improve report wording
sskeirik Dec 21, 2025
354c7b7
reorder report cases
sskeirik Dec 21, 2025
c185914
improve wording
sskeirik Dec 21, 2025
01877e6
fix typo
sskeirik Dec 21, 2025
f5988ee
fix typos/improve report wording
sskeirik Dec 21, 2025
04f3020
improve report wording
sskeirik Dec 21, 2025
e17d3d5
report: fix typos and add details
sskeirik Dec 21, 2025
300d516
report: update a few descriptions
sskeirik Dec 21, 2025
c56de22
report: improve formatting
sskeirik Dec 21, 2025
666ab18
report: make report more consistent
sskeirik Dec 21, 2025
e364bbd
report: fix spelling errors and typos
sskeirik Dec 21, 2025
113257d
report: improve wording consistency
sskeirik Dec 21, 2025
28db80f
report: add more description about proof summary
sskeirik Dec 21, 2025
c09db56
Typo fixing
dkcumming Jan 7, 2026
28b39ee
test(spl): modify the `test_process_mint_to` spec post-condition sequ…
Stevengre Dec 5, 2025
33f7e32
checkout to previous mint_to spec (#133)
Stevengre Dec 5, 2025
4be8e45
Fix checks and their ordering in some proofs, update mir-semantics de…
jberthold Dec 6, 2025
70f38a8
chore(spl): update changes in #124, #134 for spl-token specs (#135)
Stevengre Dec 8, 2025
b874d59
Upgrade mir-semantics dependency (#136)
jberthold Dec 10, 2025
6f19674
Update mir-semantics dependency (avoid unreachable vacuous branches) …
jberthold Dec 11, 2025
c4a3ffb
fix(spl): modify program to avoid missing function issue (#138)
Stevengre Dec 11, 2025
5cee269
Assert `result.is_ok()` for `InitializeMint{2}` harnesses (#140)
dkcumming Dec 15, 2025
0cb23e1
chore(spl): Merged Assert `result.is_ok()` for `InitializeMint{2}` ha…
Stevengre Dec 16, 2025
1279806
Updated mir-semantics submodule (#142)
dkcumming Dec 17, 2025
4d7b704
fix(spl): refactor `get_rent` function and replace slice_eq with Pubk…
Stevengre Jan 7, 2026
2de6089
`Burn` spec corrections (non-multisig) (#144)
dkcumming Jan 7, 2026
166f4d9
`BurnChecked` spec corrections (non-multisig) (#145)
dkcumming Jan 7, 2026
afd8eec
fix(spl): modify tests for process_withdraw_excess_lamports with `Inv…
Stevengre Jan 9, 2026
a6007aa
`TransferChecked` spec corrections (non-multisig) (#148)
dkcumming Jan 10, 2026
061e16c
Update rv-run-proofs.yaml to use stable_mir_json from the kmir docker…
yiyi-wang-rv Jan 13, 2026
259b79c
`CloseAccount` spec corrections (non-multisig) (#149)
dkcumming Jan 14, 2026
d21c790
refacor: make the specs of spl-token and p-token easy to check consis…
Stevengre Jan 19, 2026
b077d1c
Renamed report.md to RV_EQUIVALENCE_PROOFS_REPORT.md
dkcumming Jan 15, 2026
34b28c1
Remove branch column, unnecessary and analysis did not include `Multi…
dkcumming Jan 15, 2026
709341f
Updated report to reference VERIFICATION_GUIDE.md
dkcumming Jan 15, 2026
fc2d6da
documentation updates
dkcumming Jan 20, 2026
e56bec7
Removed old json and dot files
dkcumming Jan 21, 2026
d276031
Updated documentation to include domain assumptions information
dkcumming Jan 21, 2026
3f25e17
Added limitations to documentation
dkcumming Jan 21, 2026
59ceb5b
restoring rust files
dkcumming Jan 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 22 additions & 37 deletions .github/workflows/rv-run-proofs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,6 @@ on:
required: false
type: string
default: # empty = retrieve from submodule (later)
smir:
description: Stable MIR JSON to work with (commit hash, optional)
required: false
type: string
default: # empty = master
timeout:
description: Timeout for running the proofs
required: false
Expand All @@ -40,7 +35,6 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true


jobs:
compile:
name: "Compile to SMIR JSON"
Expand All @@ -49,22 +43,21 @@ jobs:
artifact_name: ${{ steps.vars.outputs.artifact_name }}
start_prefix: ${{ steps.vars.outputs.start_prefix }}
show_prefix: ${{ steps.vars.outputs.show_prefix }}
kmir: ${{ steps.kmir.outputs.kmir }}
steps:
- name: "Git Checkout"
uses: actions/checkout@v4

- name: "Provide nightly Rust" # https://github.com/rust-lang/rustup/issues/3409
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-11-29 # Hardcoded version for stable-mir-json. TODO can we use nix?

- name: "Provide Nix"
uses: cachix/install-nix-action@v30

- name: "Set up nix shell"
uses: rrbutani/use-nix-shell-action@v1
with:
flakes: github:runtimeverification/stable-mir-json/${{ inputs.smir }}
- name: "Set KMIR version"
id: kmir
run: |
if [ ! -z "${{ inputs.kmir }}" ]; then
echo "KMIR version set to ${{ inputs.kmir }}"
kmir=${{ inputs.kmir }}
else
kmir=p-token-$(git rev-parse --short $(git ls-tree HEAD p-token/test-properties/mir-semantics/ | awk '{print $3}'))
fi
echo "kmir=$kmir" >> $GITHUB_OUTPUT

- name: "Derive settings from target"
id: vars
Expand All @@ -90,10 +83,16 @@ jobs:
;;
esac

- name: "Build with stable_mir_json"
- name: "Build with stable_mir_json from Docker"
run: |
cd "${{ steps.vars.outputs.crate_dir }}"
RUSTC=stable_mir_json cargo build --features runtime-verification,assumptions
docker run --rm \
--entrypoint bash \
-u 0:0 \
-v $PWD:/workdir --workdir /workdir \
-e CARGO_HOME=/tmp/cargo \
-e RUSTUP_HOME=/rustup \
runtimeverificationinc/kmir:${{ steps.kmir.outputs.kmir }} \
-c "cd '${{ steps.vars.outputs.crate_dir }}' && RUSTC=/home/kmir/.stable-mir-json/release.sh cargo build --features runtime-verification,assumptions"

- name: "Store SMIR JSON files"
uses: actions/upload-artifact@v4
Expand All @@ -108,26 +107,12 @@ jobs:
runs-on: ubuntu-latest
outputs:
proofs: ${{ steps.split.outputs.matrix }}
kmir: ${{ steps.kmir.outputs.kmir }}
steps:
- name: "Git Checkout"
uses: actions/checkout@v4

- name: "Create Proof Array"
id: split
run: |
echo "proofs = '${{ inputs.proofs }}'"
echo "matrix=${{ inputs.proofs }}" >> $GITHUB_OUTPUT
- name: "Set KMIR version"
id: kmir
run: |
if [ ! -z "${{ inputs.kmir }}" ]; then
echo "KMIR version set to ${{ inputs.kmir }}"
kmir=${{ inputs.kmir }}
else
kmir=p-token-$(git rev-parse --short $(git ls-tree HEAD p-token/test-properties/mir-semantics/ | awk '{print $3}'))
fi
echo "kmir=$kmir" >> $GITHUB_OUTPUT

run_proof:
name: "Link SMIR and Run Proofs"
Expand All @@ -146,7 +131,7 @@ jobs:
- name: debug matrix and docker image
run: |
echo "This is proof ${{ matrix.proof }}"
echo "Running with $KMIR_CONTAINER_NAME, docker image runtimeverificationinc/kmir:${{ needs.prepare_matrix.outputs.kmir }}"
echo "Running with $KMIR_CONTAINER_NAME, docker image runtimeverificationinc/kmir:${{ needs.compile.outputs.kmir }}"

- name: "Set up Docker Host"
run: |
Expand All @@ -157,7 +142,7 @@ jobs:
-u $(id -u):$(id -g) \
-v $PWD:/workdir --workdir /workdir \
--name "${KMIR_CONTAINER_NAME}" \
runtimeverificationinc/kmir:${{ needs.prepare_matrix.outputs.kmir }} \
runtimeverificationinc/kmir:${{ needs.compile.outputs.kmir }} \
bash -c 'while true; do sleep 600; done'
sleep 10

Expand Down
10 changes: 9 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,13 @@
"useTabs": false,
"tabWidth": 2,
"arrowParens": "always",
"printWidth": 80
"printWidth": 80,
"overrides": [
{
"files": "*.(yml|yaml)",
"options": {
"singleQuote": false
}
}
]
}
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading