1#ifndef PROBFD_CARTESIAN_TRACE_GENERATOR_H
2#define PROBFD_CARTESIAN_TRACE_GENERATOR_H
4#include "probfd/cartesian_abstractions/flaw_generator.h"
5#include "probfd/cartesian_abstractions/types.h"
17namespace probfd::cartesian_abstractions {
18class CartesianAbstraction;
19class CartesianHeuristic;
22namespace probfd::cartesian_abstractions {
24struct TransitionOutcome {
30 operator<=>(
const TransitionOutcome&,
const TransitionOutcome&) =
default;
33 operator<<(std::ostream& os,
const TransitionOutcome& t);
38 virtual ~TraceGenerator() =
default;
40 virtual std::unique_ptr<Trace> find_trace(
41 CartesianAbstraction& abstraction,
43 CartesianHeuristic& heuristic,
44 utils::CountdownTimer& timer) = 0;
46 virtual void notify_split() = 0;