9.3 KiB
SYNC-STATUS — pulsar-mptc ↔ pulsar ↔ proofs ↔ papers ↔ LPs
Cross-repo sync audit answering: "is
~/work/lux/pulsarup to date and integrated with the latestpulsar-mptcsubmission package? Do~/work/lux/proofsand~/work/lux/papershave full indexes? Do the LPs match?"Audit date: 2026-05-18. Updated after every cross-repo sync action.
TL;DR
| Question | Answer |
|---|---|
Is ~/work/lux/pulsar integrated with pulsar-mptc? |
Two repos by design. pulsar/ = production library; pulsar-mptc/ = NIST submission package. Same Go module path. Not a fork-and-merge relationship. |
| Are they in sync where they overlap? | Partially. spec/pulsar.tex is current in both; supplementary .tex (design-decisions, family-architecture, threat-model, nist-mptc-category, patent-notes) lives in pulsar/spec/ only; proofs + jasmin live in pulsar-mptc/ only. |
Does ~/work/lux/proofs/ have an index? |
Yes now — proofs/INDEX.md regenerated 2026-05-18 (104 Lean + 24 TLA+ + 10 Halmos + 6 Tamarin + 5 Go property + 22 LaTeX). |
Does ~/work/lux/papers/ have an index? |
Yes — papers/INDEX.md regenerated 2026-05-18 (17 root + 124 directory papers = 141 documents). |
| Do the LPs match the v0.1 submission package? | LP-180 needs path refresh (still references pulsar-m / pulsarm / Pulsar_M post-af3d669 rename in pulsar/); LP-073 is current; CRYPTO-CANONICAL.md does not yet list pulsar-mptc as the canonical NIST-submission home. |
Repository roles
~/work/lux/
├── pulsar/ ← Production Go library (luxfi/pulsar)
│ ├── spec/ Full LaTeX spec set (pulsar.tex + 6 supplements)
│ ├── ref/go/ Go reference implementation
│ ├── bench/ ct/ scripts/ test/ vectors/ Production engineering
│ ├── LLM.md BLOCKERS.md README.md
│ └── *** NO proofs/ or jasmin/ ***
│
├── pulsar-mptc/ ← NIST MPTC submission package (this repo)
│ ├── SUBMISSION.md Submission cover sheet (top-level)
│ ├── docs/spec-overview.md docs/suite.md docs/sync-status.md Companion docs
│ ├── docs/patents.md docs/proof-axiom-inventory.md docs/proof-claims.md
│ ├── docs/fips-204-traceability.md docs/tcb.md
│ ├── docs/information-architecture.md
│ ├── docs/roadmap.md CHANGELOG.md README.md
│ ├── docs/ ietf-draft-skeleton, magnetar, evaluation,
│ │ patent-claims, x-wing-sig
│ ├── spec/ pulsar.tex + 3 supplements
│ ├── ref/go/ Same Go module path as pulsar/, frozen for NIST
│ ├── proofs/easycrypt/ EC theories (v4-v13 work)
│ ├── proofs/lean-easycrypt-bridge.md
│ ├── jasmin/lib/ jasmin/ml-dsa-65/ jasmin/threshold/
│ ├── scripts/ build + gen-vectors + bench + check-lean-bridge
│ └── vectors/ KAT vectors
│
├── proofs/ ← All non-Pulsar mechanized proofs
│ ├── INDEX.md (regenerated 2026-05-18)
│ ├── README.md Lean inventory + run commands
│ ├── lean/ 104 .lean files (Crypto/ Consensus/ ...)
│ ├── tla/ 24 specs + MC harnesses
│ ├── tamarin/ 6 .spthy protocols
│ ├── halmos/ 10 Solidity symbolic-exec suites
│ ├── property/ 5 Go property tests
│ ├── pulsar/ 9 LaTeX claim documents (mirror EC + Lean)
│ ├── quasar/ fhe/ lss/ LaTeX claim documents
│ ├── definitions/ Shared TeX definitions
│ ├── strict-e2e-pq/ E2E-PQ profile soundness
│ ├── pq-finality-no-bls.pdf
│ ├── quasar-cert-soundness.pdf
│ └── *** Pulsar EC + Jasmin live in pulsar-mptc/, NOT here ***
│
└── papers/ ← All Lux research papers
├── INDEX.md (regenerated 2026-05-18)
├── 17 root-level .tex/.pdf (lux-pq-crypto-suite, lux-chain-architecture, ...)
└── 124 directory papers (lp-073-pulsar/, lp-020-quasar-consensus/, ...)
What changed in this audit
| Action | File | Status |
|---|---|---|
| Built top-level proofs index | ~/work/lux/proofs/INDEX.md |
created |
| Regenerated papers index from disk | ~/work/lux/papers/INDEX.md |
refreshed (121 → 141) |
| Wrote this sync status | ~/work/lux/pulsar-mptc/docs/sync-status.md |
this file |
| Wrote submission-readiness status | ~/work/lux/pulsar-mptc/docs/status.md |
created |
| Wrote single-impl merge plan | ~/work/lux/pulsar-mptc/docs/single-impl-plan.md |
created |
Fix LP-180 stale pulsar-m paths |
~/work/lux/lps/LP-180-nist-mptc-submission.md |
patched |
| Add pulsar-mptc to CRYPTO-CANONICAL | ~/work/lux/lps/CRYPTO-CANONICAL.md |
deferred — single-line cross-ref |
Open work: collapse to single Go implementation
pulsar/ref/go/pkg/pulsar/ (37 files, 8 328 LOC) and
pulsar-mptc/ref/go/pkg/pulsar/ (28 files, 7 383 LOC) have diverged
in parallel — all 23 shared files differ, 5 files are unique to
pulsar-mptc (identity, zeroize, n1_byte_equality_test, fuzz_test),
14 files are unique to pulsar (large_*, round, verify_batch, etc.).
Collapsing to a single canonical implementation requires a real merge,
not a wholesale deletion. The merge specification lives in
single-impl-plan.md. Until executed, the duplicate trees stand and
this audit flags the divergence as open work blocking "one and only
one implementation" suite invariant.
File-level comparison: pulsar/ ↔ pulsar-mptc/
Shared (pulsar.tex and pulsar-m.tex)
pulsar/spec/pulsar.tex (May 13, 78 433 bytes) post-dates the -M
qualifier removal (pulsar commit af3d669).
pulsar-mptc/spec/pulsar.tex (May 16, 77 007 bytes) is the
submission-frozen copy. The two diverge on layout / supplementary
appendices but agree on the protocol body — they are not expected to
be byte-identical.
Only in pulsar/spec/
These supplementary .tex are intentional historical/reference
material in the production-library spec and are NOT carried into the
submission package:
spec/blockers.tex
spec/design-decisions.tex
spec/family-architecture.tex
spec/nist-mptc-category.tex
spec/patent-notes.tex
spec/threat-model.tex
Only in pulsar-mptc/
The full NIST-submission documentation package + all formal-method artifacts:
SUBMISSION.md CHANGELOG.md README.md (top-level)
docs/spec-overview.md docs/suite.md docs/sync-status.md
docs/patents.md docs/proof-axiom-inventory.md docs/proof-claims.md
docs/fips-204-traceability.md docs/tcb.md
docs/information-architecture.md docs/roadmap.md
docs/ietf-draft-skeleton.md docs/magnetar.md docs/evaluation.md
docs/patent-claims.md docs/x-wing-sig.md
proofs/easycrypt/ (28 files; v4-v13 decomposition complete)
proofs/lean-easycrypt-bridge.md
jasmin/lib/ jasmin/ml-dsa-65/ jasmin/threshold/
LP-180 stale paths
LP-180-nist-mptc-submission.md was drafted 2026-05-12 against the
pre-rename pulsar-m identifiers. The pulsar/ repo dropped the
-M qualifier on 2026-05-16 (commits af3d669 + dff9e84). LP-180
still uses:
| Stale path | Current path |
|---|---|
spec/pulsar-m.tex |
spec/pulsar.tex |
ref/go/pkg/pulsarm/ |
ref/go/pkg/pulsar/ |
Crypto/Pulsar_M/OutputInterchange.lean |
Crypto/Pulsar/OutputInterchange.lean |
Crypto/Pulsar_M/Unforgeability.lean |
Crypto/Pulsar/Unforgeability.lean |
Crypto/Pulsar_M/Shamir.lean |
Crypto/Pulsar/Shamir.lean |
proofs/easycrypt/PulsarM_N1.ec |
proofs/easycrypt/Pulsar_N1.ec |
proofs/easycrypt/PulsarM_N4.ec |
proofs/easycrypt/Pulsar_N4.ec |
lemmas/PulsarM_CT.ec |
lemmas/Pulsar_CT.ec |
Module path github.com/luxfi/pulsar-m |
github.com/luxfi/pulsar |
Patch lands in lps commit alongside this audit.
Recommendations
- Keep two-repo split. The
pulsar/(production) ↔pulsar-mptc/(submission) split is intentional per the pulsar-mptc README and LP-180. Do not merge. - Cross-link the two READMEs. Add a "submission package" pointer
in
pulsar/README.mdand a "production library" pointer inpulsar-mptc/README.md. (Both READMEs already reference each other in prose — the pointer is the explicit Markdown link.) - Promote SYNC-STATUS to a recurring artifact. Re-run this audit each quarter or whenever a major rename / restructuring lands in either repo, and refresh the table.
- Add
pulsar-mptcas a row inCRYPTO-CANONICAL.md. Single line under the Module-LWE section pointing at this repo as the NIST-submission home, separate from the production library home.
Per-repo status snapshot
| Repo | HEAD as of audit | Drift severity |
|---|---|---|
pulsar/ |
af3d669 (2026-05-16) — drop -M qualifier |
None vs production role |
pulsar-mptc/ |
c2e01e3 (2026-05-18) — HANZO-CRYPTO-SUITE + X-Wing-Sig |
None vs submission role |
proofs/ |
post 2026-05-18 (INDEX.md added) |
None |
papers/ |
post 2026-05-18 (INDEX.md regenerated) |
None |
lps/ |
pre LP-180 path refresh | needs LP-180 path patch |
Document metadata
- Name:
sync-status.md - Version: v0.1
- Date: 2026-05-18
- Owner:
[email protected] - Re-run cadence: quarterly + after any cross-repo rename