@informalsystems/quint
Version:
Core tool for the Quint specification language
54 lines (53 loc) • 1.45 kB
TypeScript
import { QuintEx } from './ir/quintIr';
import { Rng } from './rng';
import { QuintError } from './quintError';
import { TraceHook } from './cliReporting';
/**
* Various settings that have to be passed to the simulator to run.
*/
export interface SimulatorOptions {
init: string;
step: string;
invariant: string;
individualInvariants?: string[];
maxSamples: number;
maxSteps: number;
numberOfTraces: number;
rng: Rng;
verbosity: number;
storeMetadata: boolean;
hideVars: string[];
onTrace?: TraceHook;
}
export interface SimulationTrace {
states: QuintEx[];
result: boolean;
seed: bigint;
}
export type SimulationStatus = 'ok' | 'violation' | 'error';
/** The outcome of a simulation
*/
export interface Outcome {
status: SimulationStatus;
errors: QuintError[];
bestTraces: SimulationTrace[];
witnessingTraces: number[];
samples: number;
traceStatistics: TraceStatistics;
}
/**
* A result returned by the simulator.
*/
export interface SimulationResult {
result: QuintEx;
witnessingTraces: number[];
samples: number;
traceStatistics: TraceStatistics;
}
export interface TraceStatistics {
averageTraceLength: number;
minTraceLength: number;
maxTraceLength: number;
}
export declare function getTraceStatistics(traceLengths: number[]): TraceStatistics;
export declare function showTraceStatistics(stats: TraceStatistics): string;