Skip to content

reactive-systems/eahyper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EAHyper - A Satisfiability Solver for Hyperproperties

EAHyper is a satisfiability solver for hyperproperties expressed in the decidable fragment of HyperLTL.

See also https://www.react.uni-saarland.de/tools/eahyper/.

Copyright © 2017, 2018 Christopher Hahn, Marvin Stenger (Reactive Systems Group @ Saarland University)

Background

Hyperproperties generalize properties of individual computation traces in that they relate such traces to each other. This is needed to express information flow security policies, such as observational determinism: A systems behavior should appear to be deterministic to an external observer, i.e., there should be no information leakage of certain secrets into the public domain.

HyperLTL, which extends linear-time temporal logic (LTL) with explicit trace quantification, is a recently introduced temporal logic capable of formalizing many hyperproperties of interest. However, formalizing hyperproperties in HyperLTL can be error-prone, since we have to consider multiple traces at the same time.

Applications

EAHyper can be used to automatically detect specifications which are vacuously true or inconsistent and to check implication and equivalence between multiple formalizations of the same requirement.

With EAHyper, an overhead in verification processes, such as model checking (check out MCHyper) or monitoring, may be avoided by detecting erroneous or redundant specifications reliably and easily at an early stage during the verification process. EAHyper can also be used to understand formalized hyperproperties better, for example, the many different variations of information flow policies considered by the security community.

Demo

Try EAHyper directly in our online interface.

Download and Install

Binary Distribution

We preinstalled EAHyper on a virtual machine including the corresponding benchmarks given in [FHS17]. You can import this virtual machine by using VirtualBox.

Install from Source

  1. Fulfill dependencies:

  2. Clone this repository:

    git clone https://github.com/reactive-systems/eahyper
    
  3. Build EAHyper:

    cd eahyper
    make
    
  4. (Optional) Build benchmarks:

    make benchmarks
    
  5. (Optional) Run demo to see if everything works properly:

    make demo