{"id":27968735,"url":"https://github.com/nethermindeth/fvintmax","last_synced_at":"2025-06-16T11:34:20.766Z","repository":{"id":280784226,"uuid":"847697586","full_name":"NethermindEth/FVIntmax","owner":"NethermindEth","description":"Formal verification of the Intmax protocol in Lean","archived":false,"fork":false,"pushed_at":"2025-01-27T16:31:06.000Z","size":233,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T21:06:58.932Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lean","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NethermindEth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-26T11:24:24.000Z","updated_at":"2025-03-23T16:06:01.000Z","dependencies_parsed_at":"2025-03-05T09:45:50.210Z","dependency_job_id":"2e71b437-e661-4b55-b4b3-e1c7313106e5","html_url":"https://github.com/NethermindEth/FVIntmax","commit_stats":null,"previous_names":["nethermindeth/fvintmax"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NethermindEth/FVIntmax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NethermindEth%2FFVIntmax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NethermindEth%2FFVIntmax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NethermindEth%2FFVIntmax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NethermindEth%2FFVIntmax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NethermindEth","download_url":"https://codeload.github.com/NethermindEth/FVIntmax/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NethermindEth%2FFVIntmax/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260150931,"owners_count":22966408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-07T21:06:57.157Z","updated_at":"2025-06-16T11:34:20.746Z","avatar_url":"https://github.com/NethermindEth.png","language":"Lean","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Formal verification of the Intmax protocol in Lean\n\nThis repository mechanises the main result (`theorem 1`) of [0].\nThis subsumes all of the relevant definitions and lemmas from the paper.\n\n### Assumptions / Trust base\n\nStrictly technically speaking, the statements we mechanically prove come with a set of assumptions that we merely assume to hold.\nThese are as follows.\n\n#### Axioms\n\nWe introduce the following axioms:\n`Wheels/Wheels.lean` - `axiom computationallyInfeasible_axiom : ∀ {p : Prop}, ComputationallyInfeasible p → ¬p`\n\nTo model the semantics of computational infeasibility; this technically makes the environment inconsistent;\nas such, we make sure to disallow Lean to use this reasoning in any automated way whatsoever in addition\nto restricting our own usage of this statement to the least degree possible.\n\nThis is used to show that the hash function we use is injective (cf. `theorem injective_of_CryptInjective`) as well as\nexpressing the fact that the binding property of the authenticated dictionary cannot be broken (cf. `computationallyInfeasible_axiom` in the proof of `theorem 1`).\n\n#### Assumptions\n\n`AttackGame.lean` defines `isπ` which is subsequently assumed by `theorem1`, in spite of this being provable from the model\nof the attack game.\n\n#### Model\n\nWe took great care to follow the definitions laid out in the paper to the maximum extent possible.\nNevertheless, the correctness of the statements being proved is with regards to the Lean definitions\nmechanised in this formalisation, which are only as faithful to the ones presented in the paper\nas we can reasonably ascertain as human beings.\n\n#### Lean\n\nWe trust Lean to check the correctness of proofs.\n\n### Building / Proof checking\n\nUsing `leanprover/lean4:v4.14.0-rc2` we simply run `lake build` in the root directory.\nSuccessful compilation of this project means that Lean has checked the proofs of the pertinent statements.\n\n[0] - https://eprint.iacr.org/2023/1082.pdf.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnethermindeth%2Ffvintmax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnethermindeth%2Ffvintmax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnethermindeth%2Ffvintmax/lists"}