Skip to content

Commit

Permalink
edits
Browse files Browse the repository at this point in the history
  • Loading branch information
franziskuskiefer authored Oct 20, 2023
1 parent 25c8999 commit dd7d4b5
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions content/posts/hax-v0-1/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
author: "Franziskus Kiefer & Lucas Franceschino"
title: "Introducing hax 🎂"
date: "2023-19-10"
date: "2023-20-10"
description: "We are excited to announce the first release of hax"
tags: ["release", "announcement"]
ShowToc: true
Expand All @@ -15,10 +15,11 @@ But a ton of work has gone into this release.

> Wait, what is hax?
Let's start at the beginning. A group of us started hacspec (high
assurance crypto specifications), a language for specifying
cryptographic primitives as the basis for formal verification, in
early 2018 at the [HACS workshop]. After two
Let's start at the beginning.
A group of us started hacspec (high assurance crypto specifications),
a language for specifying cryptographic primitives as the basis for formal verification, in
early 2018 at the [HACS workshop].
After two
[iterations](https://github.com/hacs-workshop/hacspec) on
[hacspec](https://github.com/hacspec/hacspec) the project
outgrew the name and the initial crypto-oriented scope.
Expand All @@ -42,19 +43,21 @@ developers will find it fruitful to build backends for hax.
hacspec is a purely functional subset of Rust that can be used, together with a hacspec
standard library, to write succinct, executable, and verifiable specifications in
Rust. These specifications can be translated into formal languages with hax.
Rust.
These specifications can be translated into formal languages with hax.

![](hax-high-level.png)

# hax

There are a number of Rust verification projects out there. See,
There are a number of Rust verification projects out there.
See,
for example, [Rust
Verify](https://sites.google.com/view/rustverify2023) and the [Rust Formal Methods Interest Group](https://rust-formal-methods.github.io/).
While most existing tools try to precisely model the most complex bits the Rust language,
hax aims to be a usable and pragmatic tool that can analyze the kind of
code Rust developer write on a daily basis, while abstracting away
or ignoring Rust features it does not support.
code Rust developers write on a daily basis, while abstracting away
or ignoring Rust features it does not support.
We believe that it is important in practice to have a usable tool that
can ingest large Rust crates to show properties on certain parts of
the code, instead of getting stuck on hard corner cases.
Expand Down Expand Up @@ -85,7 +88,7 @@ The hax exporter is not opinionated toward the hax project:
it can be used as a frontend to the Rust compiler in other projects.
For example, we are working with the
[Aeneas](https://github.com/AeneasVerif/aeneas) project
towads using sharing the exporter code between
towards sharing the exporter code between
[the two tools](https://github.com/AeneasVerif/aeneas/pull/35).

## The Engine
Expand Down Expand Up @@ -292,9 +295,8 @@ the option being unwrapped is not `None`.
# Call to Action

hax is still under heavy development and there are many features we
want to add, and many bugs to squash. We invite everyone to
contribute to the project with new backends, contributing to the hax
frontend or backend, or provide examples to exercise the tool.
want to add, and many bugs to squash.
We invite everyone to contribute to the project with new backends, contributing to the hax frontend or backend, or provide examples to exercise the tool.

The F\* backend is currently being developed by the Inria Prosecco
team, the Coq backend by the Aarhus team, and an EasyCrypt backend is
Expand Down

0 comments on commit dd7d4b5

Please sign in to comment.