7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_SMALL_STEP_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_SMALL_STEP_H_
16#include "backends/p4tools/common/compiler/reachability.h"
19#include "midend/coverage.h"
21#include "backends/p4tools/modules/testgen/core/program_info.h"
22#include "backends/p4tools/modules/testgen/lib/execution_state.h"
24namespace P4::P4Tools::P4Testgen {
28class SmallStepEvaluator {
29 friend class CommandVisitor;
37 ExecutionStateReference nextState;
55 using Result = std::vector<Branch> *;
69 uint64_t violatedGuardConditions = 0;
74 using REngineType = std::pair<ReachabilityResult, std::vector<SmallStepEvaluator::Branch> *>;
76 static void renginePostprocessing(ReachabilityResult &result,
77 std::vector<SmallStepEvaluator::Branch> *branches);
79 REngineType renginePreprocessing(SmallStepEvaluator &stepper,
const ExecutionState &nextState,
Provides a higher-level interface for an SMT solver.
Definition solver.h:30
std::set< const IR::Node *, SourceIdCmp > CoverageSet
Definition coverage.h:47
IR::Expression Constraint
Represents a constraint that can be shipped to and asserted within a solver.
Definition solver.h:23
Definition phv/solver/action_constraint_solver.cpp:33