Documentation

MiniWalnut

MiniWalnut #

This library implements the main operations needed to conduct the decision algorithm in Walnut. More information on the original Walnut software can be found here.

Automata #

Implements the necessary components to support base-2 operations in Walnut, as well as the complement and state renaming operations.

Main Components #

Crossproduct #

This file implements cross product operations over DFAs, which is used to represent logical operators between two automata languages, and comparison operations for DFAOs representing automatic languages.

Main Components #

Quantification Operations for DFAs #

This file implements existential (∃) and universal (∀) quantification over automata, which is fundamental for building first-order formulas in automata-based decision procedures.

Main Components #

DFA Minimization #

This file implements DFA minimization using Hopcroft's algorithm, which is the most efficient algorithm for minimizing DFAs (O(n log n) where n is the number of states).

Main Components #

Examples #

This file implements different examples of MiniWalnut being used to prove properties of the Thue-Morse sequence, taken from here

Main #

This file implements the function printDFADot which prints a graphviz notation of a given DFA