UNPKG

@informalsystems/quint

Version:

Core tool for the Quint specification language

42 lines (41 loc) 1.64 kB
/** * 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;