Software

Tools for runtime verification, model checking, and reasoning about software.

Projects · newest first

TaskSAT

SMT · Task networks

Model, schedule, and verify task networks with temporal and resource constraints.

Fuzzing

Python · Test generation

Generate tests using constraints, including temporal constraints on event sequences.

LogScope / C++

C++ · Log analysis

The C++ LogScope project and its repositories.

PyContract

Python · Trace analysis

Write monitors in Python to check event traces and detect violations of expected behavior.

MonAmI

Python · Temporal logic

Monitoring for First-Order Allen Temporal Logic. I contributed the parser and mentored the work.

F Prime Scala

Scala · Flight software

A Scala implementation of the F Prime flight software framework.

DejaVu

Temporal logic · Monitoring

Check first-order temporal properties over event streams, using binary decision diagrams to represent observed data.

nfer

Scala · Event abstraction

Turn detailed event traces into higher-level intervals that describe patterns of activity.

Daut

Scala · Data automata

Combine state machines, temporal operators, and rules to monitor streams of events.

LogFire

Scala · Rules

A rule-based approach to monitoring event streams, built around a variation of the RETE algorithm.

TraceContract

Scala · Event streams

Specify trace properties with data-parameterized automata and temporal logic in a Scala DSL.

LogScope / Python

Python · Log analysis

A monitoring framework for checking execution logs against specifications.

Java PathFinder 1 (JPF1)

Java · Model checking

The original Java-to-Promela model checker, with its user guide and papers.

Garbage collector refinement

PVS · Proof development

A mechanized refinement proof for a garbage collection algorithm.