@informalsystems/quint
Version:
Core tool for the Quint specification language
42 lines (41 loc) • 1.64 kB
TypeScript
/**
* This module is a wrapper for Quint's static analysis.
*
* @author Gabriela Moreira
*
* @module
*/
import { LookupTable } from './names/base';
import { OpQualifier, QuintDeclaration, QuintModule } from './ir/quintIr';
import { TypeScheme } from './types/base';
import { EffectScheme } from './effects/base';
import { QuintError } from './quintError';
export type AnalysisOutput = {
types: Map<bigint, TypeScheme>;
effects: Map<bigint, EffectScheme>;
modes: Map<bigint, OpQualifier>;
};
export type AnalysisResult = [QuintError[], AnalysisOutput];
/**
* Analyzes multiple Quint modules and returns the analysis result.
*
* NOTE: This is modifies the `lookupTable` and the `quintModules`!
* See XXX for the mutation sites.
*
* @param lookupTable - The lookup tables for the modules.
* @param quintModules - The Quint modules to be analyzed.
* @returns A tuple with a list of errors and the analysis output.
*/
export declare function analyzeModules(lookupTable: LookupTable, quintModules: QuintModule[]): AnalysisResult;
/**
* Analyzes declarations incrementally and returns the analysis result.
*
* NOTE: This is modifies the `lookupTable`!
* See XXX for the mutation sites.
*
* @param analysisOutput - The previous analysis output to be used as a starting point.
* @param lookupTable - The lookup tables for the modules.
* @param declarations - The Quint declarations to be analyzed.
* @returns A tuple with a list of errors and the analysis output.
*/
export declare function analyzeInc(analysisOutput: AnalysisOutput, lookupTable: LookupTable, declarations: QuintDeclaration[]): AnalysisResult;