UNPKG

@runtimeverificationinc/tsk

Version:

TypeScript/JavaScript library for K Framework functionality

57 lines (56 loc) 4.44 kB
import { KAtt, type WithKAtt } from "./att"; import { Counter } from "./counter"; import { KInner, KSort, KVariable, Subst } from "./inner"; import { KClaim, KDefinition, KRule, KRuleLike } from "./outer"; export declare function isTermLike(kast: KInner): boolean; export declare function sortAssocLabel(label: string, kast: KInner): KInner; export declare function sortAcCollections(kast: KInner): KInner; /** * Async version of sortAcCollections that yields control periodically to prevent stack overflow. */ export declare function sortAcCollectionsAsync(kast: KInner, yieldFrequency?: number): Promise<KInner>; export declare function ifKtype<T extends KInner>(ktype: new (...args: any[]) => T, then: (term: T) => KInner): (term: KInner) => KInner; export declare function boolToMlPred(kast: KInner, sort?: KSort): KInner; export declare function mlPredToBool(kast: KInner, unsafe?: boolean): KInner; export declare function simplifyBool(k: KInner): KInner; export declare function normalizeMlPred(pred: KInner): KInner; export declare function extractLhs(term: KInner): KInner; export declare function extractRhs(term: KInner): KInner; export declare function extractSubst(term: KInner): [Subst, KInner]; export declare function countVars(term: KInner): Counter<string>; export declare function freeVars(kast: KInner): Set<string>; export declare function propagateUpConstraints(k: KInner): KInner; export declare function splitConfigAndConstraints(kast: KInner): [KInner, KInner]; export declare function cellLabelToVarName(label: string): string; export declare function splitConfigFrom(configuration: KInner): [KInner, Record<string, KInner>]; export declare function collapseDots(kast: KInner): KInner; export declare function pushDownRewrites(kast: KInner): KInner; export declare function inlineCellMaps(kast: KInner): KInner; export declare function removeSemanticCasts(kast: KInner): KInner; export declare function uselessVarsToDots(kast: KInner, keepVars?: Iterable<string>): KInner; export declare function labelsToDots(kast: KInner, labels: Set<string>): KInner; export declare function extractCells(kast: KInner, keepCells: Set<string>): KInner; export declare function onAttributes<T extends WithKAtt>(kast: T, f: (att: KAtt) => KAtt): T; export declare function minimizeTerm(term: KInner, keepVars?: Iterable<string>): KInner; export declare function minimizeRuleLike<T extends KRuleLike>(rule: T, keepVars?: Iterable<string>): T; export declare function removeSourceMap(definition: KDefinition): KDefinition; export declare function removeAttrs(term: KInner): KInner; export declare function removeGeneratedCells(term: KInner): KInner; export declare function isAnonVar(kast: KInner): boolean; export declare function setCell(constrainedTerm: KInner, cellVariable: string, cellValue: KInner): KInner; export declare function abstractTermSafely(kast: KInner, baseName?: string, sort?: KSort | null, existingVarNames?: Set<string>): KVariable; export declare function applyExistentialSubstitutions(state: KInner, constraints: Iterable<KInner>): [KInner, KInner[]]; export declare function undoAliases(definition: KDefinition, kast: KInner): KInner; /** * Async version of undoAliases that yields control periodically to prevent stack overflow. */ export declare function undoAliasesAsync(definition: KDefinition, kast: KInner, yieldFrequency?: number): Promise<KInner>; export declare function renameGeneratedVars(term: KInner): KInner; export declare function isSpuriousConstraint(term: KInner): boolean; export declare function normalizeConstraints(constraints: Iterable<KInner>): KInner[]; export declare function removeUselessConstraints(constraints: Iterable<KInner>, initialVars: Iterable<string>): KInner[]; export declare function buildClaim(claimId: string, initConfig: KInner, finalConfig: KInner, initConstraints?: Iterable<KInner>, finalConstraints?: Iterable<KInner>, keepVars?: Iterable<string>): [KClaim, Subst]; export declare function buildRule(ruleId: string, initConfig: KInner, finalConfig: KInner, initConstraints?: Iterable<KInner>, finalConstraints?: Iterable<KInner>, priority?: number, keepVars?: Iterable<string>, defuncWith?: KDefinition): [KRule, Subst]; export declare function replaceRewritesWithImplies(kast: KInner): KInner; export declare function noCellRewriteToDots(term: KInner): KInner; export declare function defunctionalize(defn: KDefinition, kinner: KInner): [KInner, KInner[]];