Skip to content

Upstream new proofs and proof improvements #352

Upstream new proofs and proof improvements

Upstream new proofs and proof improvements #352

Workflow file for this run

name: ML-DSA - hax
on:
merge_group:
push:
branches: ["dev", "main"]
pull_request:
branches: ["dev", "main"]
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
hax_rev:
description: "The hax revision you want this job to use"
default: "main"
skip_diff:
description: "Skip diff jobs"
default: false
type: boolean
env:
CARGO_TERM_COLOR: always
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
extract:
if: ${{ github.event_name != 'merge_group' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hacspec/hax-actions@main
with:
hax_reference: ${{ github.event.inputs.hax_rev || 'main' }}
fstar: v2025.01.17
- name: 🏃 Extract ML-DSA crate
working-directory: libcrux-ml-dsa
run: ./hax.py extract
- name: ↑ Upload F* extraction
uses: actions/upload-artifact@v4
with:
name: fstar-extraction-mldsa
path: libcrux-ml-dsa/proofs/
include-hidden-files: true
if-no-files-found: error
diff:
needs: extract
if: ${{ github.event_name != 'merge_group' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: fstar-extraction-mldsa
path: ~/fstar-extraction-mldsa
- name: = Diff Extraction
if: ${{ github.event.inputs.skip_diff != 'false' }}
run: |
diff -r libcrux-ml-dsa/proofs/fstar/extraction/ \
~/fstar-extraction-mldsa/fstar/extraction/
lax:
runs-on: ubuntu-latest
needs:
- extract
- diff
if: ${{ github.event_name != 'merge_group' }}
steps:
- uses: actions/checkout@v4
- uses: hacspec/hax-actions@main
with:
hax_reference: ${{ github.event.inputs.hax_rev || 'main' }}
fstar: v2025.01.17
- name: 🏃 Lax ML-DSA crate
working-directory: libcrux-ml-dsa
run: ./hax.py prove --admit
mldsa-extract-hax-status:
if: ${{ always() }}
needs: [extract]
runs-on: ubuntu-latest
steps:
- name: Successful
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- name: Failing
if: ${{ (contains(needs.*.result, 'failure')) }}
run: exit 1
mldsa-diff-hax-status:
if: ${{ always() }}
needs: [diff]
runs-on: ubuntu-latest
steps:
- name: Successful
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- name: Failing
if: ${{ (contains(needs.*.result, 'failure')) }}
run: exit 1
mldsa-lax-hax-status:
if: ${{ always() }}
needs: [lax]
runs-on: ubuntu-latest
steps:
- name: Successful
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- name: Failing
if: ${{ (contains(needs.*.result, 'failure')) }}
run: exit 1