@runtimeverificationinc/tsk
Version:
TypeScript/JavaScript library for K Framework functionality
57 lines (56 loc) • 4.44 kB
TypeScript
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[]];