## Artifact for Submission 172:

### Verifying Asynchronous Event-Driven Programs Using Partial Abstract Transformers

- Checklist
- Tool
- Documentation
- Tutorial
- Experiments

### We include

- source code in the the subdirectory `artifact/src/` (for browsing the source. For installation, see below).
- executable binaries in the subdirectory `artifact/bin` (for platform `x64 Windows 10`):

Note:

- The following assumes you have entered the top-level of the `artifact` directory tree.
- The `Tutorial` tab contains more details about running the tool.

### 1. Source Code

Note: Our tool is built atop P, which is an open source project contributed by the developers from Microsoft Research and UC Berkeley. So, our tool heavily depends on other parts or libraries of P.

#### 1.1 The most relevant code

The code base of P is so large that we included only the source code of the most relevant sub-projects in `src/`. We also highlighted the most interesting parts in those sub-projects in the following figure.

Source code tree (shown in Visual Studio 2017)

#### 1.2 Check out the entire code base from GitHub

Use the following command to check out the entire code of P:

    git clone -b StateHashing --single-branch https://github.com/p-org/P.git

Note: The implementation of our tool is in the `StateHashing` branch.

### 2. Installation

#### 2.1 Install from source

Prerequisite: To install our tool from source code, you first need to install P on your machine.

Use the above command to check out the source code and then follow the instruction on the wiki page of P.

Warning: It will take some efforts to successfully install P. This is not required to reproduce our results; you can rely on the binaries instead.

#### 2.2 Use the binaries

Open a command line and run the following commands, for testing executability.

    cd bin/x64/Binaries
    ./pt.exe /h