Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conformance tests and soundness proof in Agda #170

Merged
50 commits merged into from
Jul 4, 2024
Merged

Conversation

bwbush
Copy link
Collaborator

@bwbush bwbush commented Jul 3, 2024

No description provided.

UlfNorell and others added 30 commits June 17, 2024 10:18
Get delta parameter from the network

Co-authored-by: Yves Hauser <[email protected]>
Implemented `chainWeight` in Agda and reorganized packages and build
@bwbush bwbush requested review from yveshauser and a user July 3, 2024 22:31
yveshauser and others added 6 commits July 4, 2024 10:24
* Unification in `newVote-preconditions` did not work anymore and
  providing refl as prf was failing

* Splitting up the voting rules might be helpful in the soundness proof
The conformance test was failing for 2 reasons:
1. The maximumBy function was wrong, it actually was minimumBy
2. The preferred chain selection logic did not select the same chain
in case of weight ties
@ghost ghost mentioned this pull request Jul 4, 2024
@ghost
Copy link

ghost commented Jul 4, 2024

It's all green, I suggest we merge this and create another branch for the soundness proof completion, WDYT @yveshauser ?

Copy link
Member

@yveshauser yveshauser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving for now - soundness proof is outstanding

@ghost ghost merged commit 44fab90 into main Jul 4, 2024
9 checks passed
@ghost ghost deleted the yveshauser/peras-conformance branch July 4, 2024 16:29
ghost pushed a commit that referenced this pull request Jul 5, 2024
This change provides an Agda-based conformance test suite for the voting logic of Peras protocol, and a skeleton for the soundness proof. Some details about the changes:

* Use of IOG Agda prelude
* Update test model to align with spec (T = 0, Δ = 0)
* Aligned versions of `agda` and `agda2hs` in nix.
* Compiles under `agda2hs`.
* Moved `peras-hs` into `peras-simulation`.
*  Implemented crypto and various helper functions in Agda
* Relocated conformance-related and prototype modules
* Added property-based test for prototype against Agda spec.
* Split up the voting rules which might be helpful in the soundness proof

Note the conformance test was initially failing for 2 reasons:
1. The maximumBy function was wrong, it actually was minimumBy
2. The preferred chain selection logic did not select the same chain
in case of weight ties

---------

Co-authored-by: Ulf Norell <[email protected]>
Co-authored-by: Yves Hauser <[email protected]>
Co-authored-by: Brian W. Bush <[email protected]>
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants