From 84ab4146ccaa67659d59870804353fb20f440137 Mon Sep 17 00:00:00 2001 From: mahtab75 Date: Sun, 29 Sep 2024 20:18:08 -0400 Subject: [PATCH 01/14] updated files to support new tuple representation --- quint/src/effects/builtinSignatures.ts | 6 +- quint/src/effects/inferrer.ts | 129 +++++++++++++------------ quint/src/graphics.ts | 12 +-- quint/src/ir/IRTransformer.ts | 12 +++ quint/src/ir/IRVisitor.ts | 13 +++ quint/src/ir/IRprinting.ts | 4 + quint/src/ir/namespacer.ts | 23 ++++- quint/src/ir/quintIr.ts | 10 +- quint/src/itf.ts | 18 ++-- quint/src/names/base.ts | 1 - quint/src/parsing/ToIrListener.ts | 41 ++++---- quint/src/runtime/impl/builder.ts | 15 +++ quint/src/runtime/impl/builtins.ts | 3 - quint/src/runtime/impl/runtimeValue.ts | 107 +++++++++++++------- quint/src/static/callgraph.ts | 9 ++ quint/src/types/constraintGenerator.ts | 31 +++++- quint/src/types/inferrer.ts | 2 + quint/test/ir/IRVisitor.test.ts | 8 ++ quint/test/runtime/compile.test.ts | 42 ++++---- quint/test/types/aliasInliner.test.ts | 6 +- quint/test/util.ts | 4 + 21 files changed, 331 insertions(+), 165 deletions(-) diff --git a/quint/src/effects/builtinSignatures.ts b/quint/src/effects/builtinSignatures.ts index 1a060ad77..ebbe697a5 100644 --- a/quint/src/effects/builtinSignatures.ts +++ b/quint/src/effects/builtinSignatures.ts @@ -15,7 +15,7 @@ import { ComponentKind, Effect, EffectComponent, EffectScheme, Entity, Signature, effectNames, toScheme } from './base' import { parseEffectOrThrow } from './parser' import { range, times } from 'lodash' -import { QuintBuiltinOpcode } from '../ir/quintIr' +// import { QuintBuiltinOpcode } from '../ir/quintIr' export function getSignatures(): Map { return new Map(fixedAritySignatures.concat(multipleAritySignatures)) @@ -247,12 +247,12 @@ const otherOperators = [ }, ] -const multipleAritySignatures: [QuintBuiltinOpcode, Signature][] = [ +const multipleAritySignatures: [string, Signature][] = [ ['List', standardPropagation], ['Set', standardPropagation], ['Map', standardPropagation], ['Rec', standardPropagation], - ['Tup', standardPropagation], + ['tuple', standardPropagation], ['tuples', standardPropagation], ['and', standardPropagation], ['or', standardPropagation], diff --git a/quint/src/effects/inferrer.ts b/quint/src/effects/inferrer.ts index 61538f38d..48febb4db 100644 --- a/quint/src/effects/inferrer.ts +++ b/quint/src/effects/inferrer.ts @@ -30,6 +30,7 @@ import { QuintOpDef, QuintStr, QuintVar, + QuintTup } from '../ir/quintIr' import { Effect, EffectScheme, Signature, effectNames, entityNames, toScheme, unify } from './base' import { Substitutions, applySubstitution, compose } from './substitutions' @@ -139,72 +140,16 @@ export class EffectInferrer implements IRVisitor { this.addToResults(expr.id, this.effectForName(expr.name, expr.id, 2).map(toScheme)) } + exitTuple(expr: QuintTup): void { + this.inferEffect(expr, expr.elements, expr.kind, expr.id, expr.elements.length) + } + // { identifier: op, effect: E } ∈ Γ Γ ⊢ p0:E0 ... Γ ⊢ pn:EN // Eres <- freshVar S = unify(newInstance(E), (E0, ..., EN) => Eres) // ------------------------------------------------------------------- (APP) // Γ ⊢ op(p0, ..., pn): S(Eres) exitApp(expr: QuintApp): void { - if (this.errors.size > 0) { - // Don't try to infer application if there are errors with the args - return - } - - this.location = `Trying to infer effect for operator application in ${expressionToString(expr)}` - const paramsResult = mergeInMany( - expr.args.map((a: QuintEx) => { - return this.fetchResult(a.id).map(e => this.newInstance(e)) - }) - ) - - const resultEffect: Effect = { kind: 'variable', name: this.freshVarGenerator.freshVar('_e') } - const arrowEffect = paramsResult - .map(params => { - const effect: Effect = { - kind: 'arrow', - params, - result: resultEffect, - } - - return effect - }) - .chain(e => applySubstitution(this.substitutions, e)) - - this.effectForName(expr.opcode, expr.id, expr.args.length) - .mapLeft(err => buildErrorTree(this.location, err)) - .chain(signature => { - const substitution = arrowEffect.chain(effect => - applySubstitution(this.substitutions, signature).chain(s => unify(s, effect)) - ) - - const resultEffectWithSubs = substitution - .chain(s => compose(this.substitutions, s)) - .chain(s => { - this.substitutions = s - - paramsResult.map(effects => - zip( - effects, - expr.args.map(a => a.id) - ).forEach(([effect, id]) => { - const r = applySubstitution(s, effect).map(toScheme) - this.addToResults(id, r) - }) - ) - // For every free name we are binding in the substitutions, the names occuring in the value of the - // substitution have to become free as well. - this.addBindingsToFreeNames(s) - - return applySubstitution(s, resultEffect) - }) - - return resultEffectWithSubs - }) - .map(effect => { - this.addToResults(expr.id, right(toScheme(effect))) - }) - .mapLeft(err => { - this.addToResults(expr.id, left(err)) - }) + this.inferEffect(expr, expr.args, expr.opcode, expr.id, expr.args.length) } // Literals are always Pure @@ -436,4 +381,66 @@ export class EffectInferrer implements IRVisitor { } }) } + + private inferEffect(expr: QuintEx, args: QuintEx[], name: string, id: bigint, arity: number): void { + if (this.errors.size > 0) { + return // Early exit if errors are present + } + + this.location = `Trying to infer effect for operator application in ${expressionToString(expr)}` + + const paramsResult = mergeInMany(args.map((a: QuintEx) => this.fetchResult(a.id).map(e => this.newInstance(e)))) + + const resultEffect: Effect = { kind: 'variable', name: this.freshVarGenerator.freshVar('_e') } + const arrowEffect = paramsResult + // paramsResult is an array. + // It iterates over each element in paramsResult, where each element is passed into the params parameter. + .map(params => { + const effect: Effect = { + kind: 'arrow', + params, + result: resultEffect, + } + + return effect + }) + .chain(e => applySubstitution(this.substitutions, e)) + + this.effectForName(name, id, arity) + .mapLeft(err => buildErrorTree(this.location, err)) + .chain(signature => { + const substitution = arrowEffect.chain(effect => + applySubstitution(this.substitutions, signature).chain(s => unify(s, effect)) + ) + + const resultEffectWithSubs = substitution + .chain(s => compose(this.substitutions, s)) + .chain(s => { + this.substitutions = s + + paramsResult.map(effects => + zip( + effects, + args.map(a => a.id) + ).forEach(([effect, id]) => { + const r = applySubstitution(s, effect).map(toScheme) + this.addToResults(id, r) + }) + ) + // For every free name we are binding in the substitutions, the names occuring in the value of the + // substitution have to become free as well. + this.addBindingsToFreeNames(s) + + return applySubstitution(s, resultEffect) + }) + + return resultEffectWithSubs + }) + .map(effect => { + this.addToResults(expr.id, right(toScheme(effect))) + }) + .mapLeft(err => { + this.addToResults(expr.id, left(err)) + }) + } } diff --git a/quint/src/graphics.ts b/quint/src/graphics.ts index 629775ff0..ec7703ad6 100644 --- a/quint/src/graphics.ts +++ b/quint/src/graphics.ts @@ -65,6 +65,9 @@ export function prettyQuintEx(ex: QuintEx): Doc { case 'str': return richtext(chalk.green, `"${ex.value}"`) + case 'tuple': + return nary(text('('), ex.elements.map(prettyQuintEx), text(')')) + case 'app': switch (ex.opcode) { case 'Set': @@ -72,8 +75,8 @@ export function prettyQuintEx(ex: QuintEx): Doc { case 'Map': { const ps: Doc[] = ex.args.map(tup => { - if (tup.kind === 'app' && tup.opcode === 'Tup' && tup.args.length === 2) { - const [k, v] = tup.args + if (tup.kind === 'tuple' && tup.elements.length === 2) { + const [k, v] = tup.elements return group([prettyQuintEx(k), richtext(chalk.gray, ' ->'), nest(' ', [line(), prettyQuintEx(v)])]) } else { return text('') @@ -82,9 +85,6 @@ export function prettyQuintEx(ex: QuintEx): Doc { return group([richtext(chalk.green, 'Map'), nary(text('('), ps, text(')'))]) } - case 'Tup': - return nary(text('('), ex.args.map(prettyQuintEx), text(')')) - case 'List': { return nary(text('['), ex.args.map(prettyQuintEx), text(']')) } @@ -108,7 +108,7 @@ export function prettyQuintEx(ex: QuintEx): Doc { const valueExpr = ex.args[1] const value = - valueExpr.kind === 'app' && valueExpr.opcode === 'Tup' && valueExpr.args.length === 0 + valueExpr.kind === 'tuple' && valueExpr.elements.length === 0 ? [] // A payload with the empty tuple is shown as a bare label : [text('('), prettyQuintEx(valueExpr), text(')')] diff --git a/quint/src/ir/IRTransformer.ts b/quint/src/ir/IRTransformer.ts index 68789e632..45f3f93d5 100644 --- a/quint/src/ir/IRTransformer.ts +++ b/quint/src/ir/IRTransformer.ts @@ -62,6 +62,8 @@ export class IRTransformer { exitLambda?: (expr: ir.QuintLambda) => ir.QuintLambda enterLet?: (expr: ir.QuintLet) => ir.QuintLet exitLet?: (expr: ir.QuintLet) => ir.QuintLet + enterTuple?: (expr: ir.QuintTup) => ir.QuintTup + exitTuple?: (expr: ir.QuintTup) => ir.QuintTup /** Types */ enterLiteralType?: ( @@ -521,6 +523,16 @@ function transformExpression(transformer: IRTransformer, expr: ir.QuintEx): ir.Q } } break + + case 'tuple': // Add this case for tuple + if (transformer.enterTuple) { + newExpr = transformer.enterTuple(newExpr) + } + newExpr.elements = newExpr.elements.map(element => transformExpression(transformer, element)) + if (transformer.exitTuple) { + newExpr = transformer.exitTuple(newExpr) + } + break default: unreachable(newExpr) diff --git a/quint/src/ir/IRVisitor.ts b/quint/src/ir/IRVisitor.ts index e0888ddcf..8a310e36e 100644 --- a/quint/src/ir/IRVisitor.ts +++ b/quint/src/ir/IRVisitor.ts @@ -71,6 +71,8 @@ export interface IRVisitor { exitLambda?: (_expr: ir.QuintLambda) => void enterLet?: (_expr: ir.QuintLet) => void exitLet?: (_expr: ir.QuintLet) => void + enterTuple?: (_expr: ir.QuintTup) => void + exitTuple?: (_expr: ir.QuintTup) => void /** Types */ enterLiteralType?: (_type: t.QuintBoolType | t.QuintIntType | t.QuintStrType) => void @@ -432,6 +434,17 @@ export function walkExpression(visitor: IRVisitor, expr: ir.QuintEx): void { visitor.exitLiteral(expr) } break + case 'tuple': { + if (visitor.enterTuple) { + visitor.enterTuple(expr) + } + expr.elements.forEach(element => walkExpression(visitor, element)) + + if (visitor.exitTuple) { + visitor.exitTuple(expr) + } + break + } case 'app': { if (visitor.enterApp) { visitor.enterApp(expr) diff --git a/quint/src/ir/IRprinting.ts b/quint/src/ir/IRprinting.ts index 8bbc720c1..bfd822b26 100644 --- a/quint/src/ir/IRprinting.ts +++ b/quint/src/ir/IRprinting.ts @@ -151,6 +151,10 @@ export function expressionToString(expr: QuintEx): string { return `((${expr.params.map(p => p.name).join(', ')}) => ${expressionToString(expr.expr)})` case 'let': return `${declarationToString(expr.opdef)} { ${expressionToString(expr.expr)} }` + case 'tuple': + return `(${expr.elements.map(expressionToString).join(', ')})` + default: + throw new Error(`Unknown expression kind: ${(expr as any).kind}`) } } diff --git a/quint/src/ir/namespacer.ts b/quint/src/ir/namespacer.ts index 8e8350101..b9f7b0cd0 100644 --- a/quint/src/ir/namespacer.ts +++ b/quint/src/ir/namespacer.ts @@ -14,7 +14,7 @@ */ import { IRTransformer, transformDefinition } from './IRTransformer' -import { QuintApp, QuintDef, QuintLambda, QuintName } from './quintIr' +import { QuintApp, QuintDef, QuintLambda, QuintName, QuintTup } from './quintIr' import { QuintConstType } from './quintTypes' /** @@ -63,6 +63,27 @@ class Namespacer implements IRTransformer { return expr } + exitTuple(tup: QuintTup): QuintTup { + // Process each element of the tuple + const namespacedElements = tup.elements.map(element => { + // If the element is a name, apply the namespace + if (element.kind === 'name' && typeof element.name === 'string') { + return { + ...element, + name: namespacedName(this.namespace, element.name), // Apply the namespace + } + } + // Otherwise, return the element as-is + return element + }) + + // Return a new tuple with namespaced elements + return { + ...tup, + elements: namespacedElements, + } + } + exitApp(expr: QuintApp): QuintApp { if (!this.namesToPreserve.has(expr.opcode)) { return { ...expr, opcode: namespacedName(this.namespace, expr.opcode) } diff --git a/quint/src/ir/quintIr.ts b/quint/src/ir/quintIr.ts index bafef6a47..3ad25a849 100644 --- a/quint/src/ir/quintIr.ts +++ b/quint/src/ir/quintIr.ts @@ -108,6 +108,13 @@ export interface QuintApp extends WithId { args: QuintEx[] } +export interface QuintTup extends WithId { + /** Expressions kind ('bool' -- a boolean literal) */ + kind: 'tuple' + /** A list of arguments to the operator */ + elements: QuintEx[] +} + /** A subtype of `QuintApp` covering all quint builtin operators */ export interface QuintBuiltinApp extends QuintApp { /** The name of the builtin being applied */ @@ -128,7 +135,6 @@ export const builtinOpCodes = [ 'Map', 'Rec', 'Set', - 'Tup', 'actionAll', 'actionAny', 'allLists', @@ -247,7 +253,7 @@ export interface QuintLet extends WithId { /** * Discriminated union of Quint expressions. */ -export type QuintEx = QuintName | QuintBool | QuintInt | QuintStr | QuintApp | QuintLambda | QuintLet +export type QuintEx = QuintName | QuintBool | QuintInt | QuintStr | QuintApp | QuintLambda | QuintLet | QuintTup /** * A user-defined operator that is defined via one of the qualifiers: diff --git a/quint/src/itf.ts b/quint/src/itf.ts index 51a8723f6..29856c0ba 100644 --- a/quint/src/itf.ts +++ b/quint/src/itf.ts @@ -11,7 +11,7 @@ import { Either, left, merge, right } from '@sweet-monads/either' import { chunk } from 'lodash' -import { QuintApp, QuintStr } from './ir/quintIr' +import { QuintTup, QuintStr } from './ir/quintIr' import { QuintEx } from './ir/quintIr' @@ -97,6 +97,11 @@ export function toItf(vars: string[], states: QuintEx[]): Either { + return { '#tup': es } + }) + case 'app': switch (ex.opcode) { case 'List': @@ -107,11 +112,6 @@ export function toItf(vars: string[], states: QuintEx[]): Either { - return { '#tup': es } - }) - case 'Rec': { if (ex.args.length % 2 !== 0) { return left('record: expected an even number of arguments, found:' + ex.args.length) @@ -192,7 +192,7 @@ export function ofItf(itf: ItfTrace): QuintEx[] { if (value === 'U_OF_UNIT') { // Apalache converts empty tuples to its unit value, "U_OF_UNIT". // We need to convert it back to Quint's unit value, the empty tuple. - return { id, kind: 'app', opcode: 'Tup', args: [] } + return { id, kind: 'tuple', elements: [] } } return { id, kind: 'str', value } @@ -207,7 +207,7 @@ export function ofItf(itf: ItfTrace): QuintEx[] { } else if (Array.isArray(value)) { return { id, kind: 'app', opcode: 'List', args: value.map(ofItfValue) } } else if (isTup(value)) { - return { id, kind: 'app', opcode: 'Tup', args: value['#tup'].map(ofItfValue) } + return { id, kind: 'tuple', elements: value['#tup'].map(ofItfValue) } } else if (isSet(value)) { return { id, kind: 'app', opcode: 'Set', args: value['#set'].map(ofItfValue) } } else if (isUnserializable(value)) { @@ -216,7 +216,7 @@ export function ofItf(itf: ItfTrace): QuintEx[] { const args = value['#map'].map(([key, value]) => { const k = ofItfValue(key) const v = ofItfValue(value) - return { id: getId(), kind: 'app', opcode: 'Tup', args: [k, v] } as QuintApp + return { id: getId(), kind: 'tuple', elements: [k, v] } as QuintTup }) return { id, diff --git a/quint/src/names/base.ts b/quint/src/names/base.ts index 3d30739b8..80740ac8b 100644 --- a/quint/src/names/base.ts +++ b/quint/src/names/base.ts @@ -222,7 +222,6 @@ export const builtinNames = [ 'Set', 'Map', 'List', - 'Tup', 'Rec', 'range', 'igt', diff --git a/quint/src/parsing/ToIrListener.ts b/quint/src/parsing/ToIrListener.ts index 22af6df68..a5ba148c8 100644 --- a/quint/src/parsing/ToIrListener.ts +++ b/quint/src/parsing/ToIrListener.ts @@ -4,11 +4,11 @@ import { ParserRuleContext } from 'antlr4ts/ParserRuleContext' import { QuintListener } from '../generated/QuintListener' import { OpQualifier, - QuintApp, QuintBuiltinApp, QuintDeclaration, QuintDef, QuintEx, + QuintTup, QuintLambda, QuintLambdaParameter, QuintLet, @@ -16,7 +16,7 @@ import { QuintName, QuintOpDef, QuintStr, - isAnnotatedDef, + isAnnotatedDef } from '../ir/quintIr' import { ConcreteFixedRow, @@ -710,8 +710,11 @@ export class ToIrListener implements QuintListener { // tuple constructor, e.g., (1, 2, 3) exitTuple(ctx: p.TupleContext) { const args = popMany(this.exprStack, ctx.expr().length, this.undefinedExpr(ctx)) - - this.pushApplication(ctx, 'Tup', args) + this.exprStack.push({ + id: this.getId(ctx), + kind: 'tuple', + elements: args, + } as QuintTup) } // The unit, (), represented by the empty tuple @@ -722,7 +725,11 @@ export class ToIrListener implements QuintListener { // pair constructor, e.g., 2 -> 3 exitPair(ctx: p.PairContext) { const args = popMany(this.exprStack, ctx.expr().length, this.undefinedExpr(ctx)) - this.pushApplication(ctx, 'Tup', args) + this.exprStack.push({ + id: this.getId(ctx), + kind: 'tuple', + elements: args, + } as QuintTup) } // list constructor, e.g., [1, 2, 3] @@ -748,17 +755,15 @@ export class ToIrListener implements QuintListener { } this.exprStack.push({ id: 0n, - kind: 'app', - opcode: 'Tup', - args: [nameEx, expr], + kind: 'tuple', + elements: [nameEx, expr], }) } else { // ...expr this.exprStack.push({ id: 0n, - kind: 'app', - opcode: 'Tup', - args: [expr], + kind: 'tuple', + elements: [expr], }) } } @@ -766,8 +771,9 @@ export class ToIrListener implements QuintListener { // record constructor, e.g., { name: "igor", year: 2021 } exitRecord(ctx: p.RecordContext) { const elems = popMany(this.exprStack, ctx.recElem().length, this.undefinedExpr(ctx)) - const spreads = elems.filter(e => e.kind === 'app' && e.args.length === 1) - const pairs = elems.map(e => (e.kind === 'app' && e.args.length === 2 ? e.args : [])).filter(es => es.length > 0) + const spreads = elems.filter(e => e.kind === 'tuple' && e.elements.length === 1) + const pairs = elems.map(e => (e.kind === 'tuple' && e.elements.length === 2 ? e.elements : [])) + .filter(es => es.length > 0) if (spreads.length === 0) { // { field1: value1, field2: value2 } @@ -779,7 +785,7 @@ export class ToIrListener implements QuintListener { } else { // { ...record, field1: value1, field2: value2 } // translate to record.with("field1", value1).with("field2", value2) - let record: QuintEx = (spreads[0] as QuintApp).args[0] + let record: QuintEx = (spreads[0] as QuintTup).elements[0] for (const p of pairs) { const id = this.getId(ctx) record = { @@ -1324,12 +1330,11 @@ function getDocText(doc: TerminalNode[]): string { } // Helper to construct an empty record (the unit value) -function unitValue(id: bigint): QuintBuiltinApp { +function unitValue(id: bigint): QuintTup { return { id, - kind: 'app', - opcode: 'Tup', - args: [], + kind: 'tuple', + elements: [], } } diff --git a/quint/src/runtime/impl/builder.ts b/quint/src/runtime/impl/builder.ts index b51839663..33d5bff8a 100644 --- a/quint/src/runtime/impl/builder.ts +++ b/quint/src/runtime/impl/builder.ts @@ -437,6 +437,21 @@ function buildExprCore(builder: Builder, expr: QuintEx): EvalFunction { } return buildDef(builder, def) } + case 'tuple': { + const elementEvals = expr.elements.map(el => buildExpr(builder, el)) + // Return a function that evaluates all elements in the tuple + return ctx => { + const evaluatedElements = [] + for (const evalFn of elementEvals) { + const evaluated = evalFn(ctx) + if (evaluated.isLeft()) { + return evaluated + } + evaluatedElements.push(evaluated.unwrap()) + } + return right(rv.mkTuple(evaluatedElements)) // Return the evaluated tuple as a right value + } + } case 'app': { if (expr.opcode === 'assign') { // Assign is too special, so we handle it separately. diff --git a/quint/src/runtime/impl/builtins.ts b/quint/src/runtime/impl/builtins.ts index ca8ebbfd2..4282c4bc9 100644 --- a/quint/src/runtime/impl/builtins.ts +++ b/quint/src/runtime/impl/builtins.ts @@ -372,9 +372,6 @@ export function builtinLambda(op: string): (ctx: Context, args: RuntimeValue[]) case 'List': // Constructs a list from the given arguments. return (_, args) => right(rv.mkList(List(args))) - case 'Tup': - // Constructs a tuple from the given arguments. - return (_, args) => right(rv.mkTuple(List(args))) case 'Map': // Constructs a map from the given arguments. Arguments are lists like [[key1, value1], [key2, value2], ...] return (_, args) => right(rv.mkMap(args.map(kv => kv.toTuple2()))) diff --git a/quint/src/runtime/impl/runtimeValue.ts b/quint/src/runtime/impl/runtimeValue.ts index 0957b1dfd..a25cb0c24 100644 --- a/quint/src/runtime/impl/runtimeValue.ts +++ b/quint/src/runtime/impl/runtimeValue.ts @@ -113,7 +113,7 @@ export const rv = { * @return a new runtime value that carries the tuple */ mkTuple: (elems: Iterable): RuntimeValue => { - return new RuntimeValueTupleOrList('Tup', List(elems)) + return new RuntimeValueTuple(List(elems)) }, /** @@ -123,7 +123,7 @@ export const rv = { * @return a new runtime value that carries the list */ mkList: (elems: Iterable): RuntimeValue => { - return new RuntimeValueTupleOrList('List', List(elems)) + return new RuntimeValueList(List(elems)) }, /** @@ -154,7 +154,9 @@ export const rv = { */ mkMap: (elems: Iterable<[RuntimeValue, RuntimeValue]>): RuntimeValue => { // convert the keys to the normal form, as they are hashed - const arr: [RuntimeValue, RuntimeValue][] = Array.from(elems).map(([k, v]) => [k.normalForm(), v]) + const arr: [RuntimeValue, RuntimeValue][] = Array.from(elems).map(([k, v]) => { + return [k.normalForm(), v] // Ensure normalForm works with tuples + }) return new RuntimeValueMap(ImmutableMap(arr)) }, @@ -310,6 +312,9 @@ export function fromQuintEx(ex: QuintEx): Maybe { case 'str': return just(rv.mkStr(ex.value)) + case 'tuple': + return merge(ex.elements.map(fromQuintEx)).map(rv.mkTuple) + case 'app': switch (ex.opcode) { case 'Set': @@ -318,18 +323,14 @@ export function fromQuintEx(ex: QuintEx): Maybe { case 'Map': { const pairs: Maybe<[RuntimeValue, RuntimeValue][]> = merge( ex.args.map(arg => { - assert(arg.kind === 'app', `Expected Tup(...), found: ${arg.kind}`) - assert(arg.opcode === 'Tup', `Expected Tup(...), found: ${arg.opcode}`) - assert(arg.args.length === 2, `Expected a 2-element Tup(...), found: ${arg.args.length} elements`) - return merge([fromQuintEx(arg.args[0]), fromQuintEx(arg.args[1])]) + assert(arg.kind === 'tuple', `Expected tuple, found: ${arg.kind}`) + assert(arg.elements.length === 2, `Expected a 2-element tuple, found: ${arg.elements.length} elements`) + return merge([fromQuintEx(arg.elements[0]), fromQuintEx(arg.elements[1])]) }) ) return pairs.map(rv.mkMap) } - case 'Tup': - return merge(ex.args.map(fromQuintEx)).map(rv.mkTuple) - case 'List': return merge(ex.args.map(fromQuintEx)).map(rv.mkList) @@ -580,8 +581,10 @@ abstract class RuntimeValueBase implements RuntimeValue { } toList(): List { - if (this instanceof RuntimeValueTupleOrList) { + if (this instanceof RuntimeValueList) { return this.list + } else if (this instanceof RuntimeValueTuple) { + return this.elements } else { throw new Error('Expected a list value') } @@ -629,11 +632,10 @@ abstract class RuntimeValueBase implements RuntimeValue { toTuple2(): [RuntimeValue, RuntimeValue] { // This is specific for tuples of size 2, as they are expected in many builtins. - if (this instanceof RuntimeValueTupleOrList) { - const list = this.list - - if (list.size === 2) { - return [list.get(0)!, list.get(1)!] + if (this instanceof RuntimeValueTuple) { + const elements = this.elements + if (elements.size === 2) { + return [elements.get(0)!, elements.get(1)!] } } throw new Error('Expected a 2-tuple') @@ -712,8 +714,14 @@ abstract class RuntimeValueBase implements RuntimeValue { if (this instanceof RuntimeValueStr && other instanceof RuntimeValueStr) { return this.value === other.value } - if (this instanceof RuntimeValueTupleOrList && other instanceof RuntimeValueTupleOrList) { - return this.kind === other.kind && this.list.equals(other.list) + if (this instanceof RuntimeValueList && other instanceof RuntimeValueTuple) { + return false + } + if (this instanceof RuntimeValueList && other instanceof RuntimeValueList) { + return this.list.equals(other.list) + } + if (this instanceof RuntimeValueTuple && other instanceof RuntimeValueTuple) { + return this.elements.equals(other.elements) } if (this instanceof RuntimeValueRecord && other instanceof RuntimeValueRecord) { return this.map.equals(other.map) @@ -865,19 +873,53 @@ class RuntimeValueStr extends RuntimeValueBase implements ValueObject { } } -type TupleOrList = 'Tup' | 'List' +class RuntimeValueTuple extends RuntimeValueBase implements RuntimeValue { + elements: List + + constructor(values: List) { + super(true) + this.elements = values + } + + [Symbol.iterator]() { + return this.elements[Symbol.iterator]() + } + + normalForm(): RuntimeValue { + const normalizedValues: RuntimeValue[] = [] + for (const e of this.elements) { + normalizedValues.push(e.normalForm()) + } + return new RuntimeValueTuple(List(normalizedValues)) + } + + hashCode(): number { + return this.elements.hashCode() + } + + toQuintEx(gen: IdGenerator): QuintEx { + // Collect elements for QuintEx representation + const elems: QuintEx[] = [] + for (const e of this.elements) { + elems.push(e.toQuintEx(gen)) + } + return { + id: gen.nextId(), + kind: 'tuple', + elements: elems, // Adjusted to reflect the new tuple structure + } + } +} /** * A set of runtime values represented via an immutable List. * This is an internal class. */ -class RuntimeValueTupleOrList extends RuntimeValueBase implements RuntimeValue { - kind: TupleOrList +class RuntimeValueList extends RuntimeValueBase implements RuntimeValue { list: List - constructor(kind: TupleOrList, values: List) { + constructor(values: List) { super(true) - this.kind = kind this.list = values } @@ -890,8 +932,7 @@ class RuntimeValueTupleOrList extends RuntimeValueBase implements RuntimeValue { for (const e of this.list) { normalizedValues.push(e.normalForm()) } - return new RuntimeValueTupleOrList(this.kind, List(normalizedValues)) - } + return new RuntimeValueList(List(normalizedValues)) } hashCode(): number { return this.list.hashCode() @@ -907,7 +948,7 @@ class RuntimeValueTupleOrList extends RuntimeValueBase implements RuntimeValue { return { id: gen.nextId(), kind: 'app', - opcode: this.kind, + opcode: 'List', args: elems, } } @@ -1000,9 +1041,7 @@ class RuntimeValueMap extends RuntimeValueBase implements RuntimeValue { toQuintEx(gen: IdGenerator): QuintEx { // convert to a set of pairs and use its normal form - const pairs: RuntimeValueTupleOrList[] = this.map - .toArray() - .map(([k, v]) => new RuntimeValueTupleOrList('Tup', List([k, v]))) + const pairs: RuntimeValueTuple[] = this.map.toArray().map(([k, v]) => new RuntimeValueTuple(List([k, v]))) const set = new RuntimeValueSet(Set(pairs)).toQuintEx(gen) if (set.kind === 'app') { // return the expression Map(pairs) @@ -1257,7 +1296,7 @@ class RuntimeValueCrossProd extends RuntimeValueBase implements RuntimeValue { for (let i = 0; i < nindices; i++) { nextElem.push(arrays[i][indices[i]]) } - yield new RuntimeValueTupleOrList('Tup', List(nextElem)) + yield new RuntimeValueTuple(List(nextElem)) } } } @@ -1274,12 +1313,12 @@ class RuntimeValueCrossProd extends RuntimeValueBase implements RuntimeValue { } contains(elem: RuntimeValue): boolean { - if (elem instanceof RuntimeValueTupleOrList) { - if (elem.list.size !== this.sets.length) { + if (elem instanceof RuntimeValueTuple) { + if (elem.elements.size !== this.sets.length) { return false } else { let i = 0 - for (const e of elem.list) { + for (const e of elem.elements) { if (!this.sets[i].contains(e)) { return false } @@ -1326,7 +1365,7 @@ class RuntimeValueCrossProd extends RuntimeValueBase implements RuntimeValue { return { code: 'QNT501', message: errors.map(quintErrorToString).join('\n') } }) - return elems.map(es => new RuntimeValueTupleOrList('Tup', List.of(...es))) + return elems.map(es => new RuntimeValueTuple(List.of(...es))) } bounds(): Maybe[] { diff --git a/quint/src/static/callgraph.ts b/quint/src/static/callgraph.ts index 30489f101..b5cfca7c0 100644 --- a/quint/src/static/callgraph.ts +++ b/quint/src/static/callgraph.ts @@ -23,6 +23,7 @@ import { QuintInstance, QuintModule, QuintName, + QuintTup } from '../ir/quintIr' import { QuintConstType } from '../ir/quintTypes' @@ -204,6 +205,14 @@ export class CallGraphVisitor implements IRVisitor { this.graphAddAll(decl.id, imports) } + exitTuple(tup: QuintTup) { + const lookupDef = this.lookupTable.get(tup.id) + if (lookupDef) { + this.graphAddOne(lookupDef.id) + this.graphAddImports(lookupDef.id) + } + } + // e.g., called for plus inside plus(x, y) exitApp(app: QuintApp) { const lookupDef = this.lookupTable.get(app.id) diff --git a/quint/src/types/constraintGenerator.ts b/quint/src/types/constraintGenerator.ts index ccaafe581..1ae0fbd5d 100644 --- a/quint/src/types/constraintGenerator.ts +++ b/quint/src/types/constraintGenerator.ts @@ -29,6 +29,7 @@ import { QuintStr, QuintVar, isAnnotatedDef, + QuintTup } from '../ir/quintIr' import { QuintType, QuintVarType, rowNames, typeNames } from '../ir/quintTypes' import { expressionToString, rowToString, typeToString } from '../ir/IRprinting' @@ -166,6 +167,33 @@ export class ConstraintGeneratorVisitor implements IRVisitor { this.addToResults(e.id, right(toScheme({ kind: e.kind }))) } + exitTuple(e: QuintTup) { + if (this.errors.size !== 0) { + return + } + const a: QuintType = { kind: 'var', name: this.freshVarGenerator.freshVar('_t') } + + // Now fetch the types of the tuple's elements + const elementsResult: Either = mergeInMany( + e.elements.map(el => { + return this.fetchResult(el.id).map(r => [el, r.type]) + }) + ) + + // Create the tuple constructor constraints + const result = elementsResult + .chain(results => { + return tupleConstructorConstraints(e.id, results, a) + }) + .map(cs => { + this.constraints.push(...cs) + return toScheme(a) + }) + + // Store the result in the types map + this.addToResults(e.id, result) + } + // op: q ∈ Γ Γ ⊢ p0, ..., pn: (t0, c0), ..., (tn, cn) a is fresh // ------------------------------------------------------------------------ (APP) // Γ ⊢ op(p0, ..., pn): (a, q ~ (t0, ..., tn) => a ∧ c0 ∧ ... ∧ cn) @@ -201,9 +229,6 @@ export class ConstraintGeneratorVisitor implements IRVisitor { ) case 'with': return validateArity(e.opcode, results, l => l === 3, '3').chain(() => withConstraints(e.id, results, a)) - // Tuple operators - case 'Tup': - return tupleConstructorConstraints(e.id, results, a) case 'item': return validateArity(e.opcode, results, l => l === 2, '2').chain(() => itemConstraints(e.id, results, a)) // Sum type operators diff --git a/quint/src/types/inferrer.ts b/quint/src/types/inferrer.ts index e7b11edeb..6606599e3 100644 --- a/quint/src/types/inferrer.ts +++ b/quint/src/types/inferrer.ts @@ -43,6 +43,8 @@ export class TypeInferrer extends ConstraintGeneratorVisitor { const typeIdsBefore = Array.from(this.types.keys()) // Resolve all type applications used in expressions in the lookup table + // makes the visitor visit every node of the tree + // this is where inferrer runs and gives us the types declarations.forEach(decl => { walkDeclaration(this, decl) }) diff --git a/quint/test/ir/IRVisitor.test.ts b/quint/test/ir/IRVisitor.test.ts index 34b024d5b..e0eb6b0a4 100644 --- a/quint/test/ir/IRVisitor.test.ts +++ b/quint/test/ir/IRVisitor.test.ts @@ -520,6 +520,14 @@ describe('walkModule', () => { exitApp(expr: QuintEx): void { this.exited.push(expr) } + + enterTuple(expr: QuintEx): void { + this.entered.push(expr) + } + + exitTuple(expr: QuintEx): void { + this.exited.push(expr) + } } const enteredExpressions = ['igt(N, 1)', 'filter(S, ((x) => iadd(x, 1)))', 'iadd(x, 1)'] diff --git a/quint/test/runtime/compile.test.ts b/quint/test/runtime/compile.test.ts index 9c0ff0f60..4051f3a68 100644 --- a/quint/test/runtime/compile.test.ts +++ b/quint/test/runtime/compile.test.ts @@ -529,7 +529,7 @@ describe('compiling specs to runtime values', () => { }) it('unpacks tuples in filter', () => { - assertResultAsString('tuples(1.to(5), 2.to(3)).filter(((x, y)) => x < y)', 'Set(Tup(1, 2), Tup(1, 3), Tup(2, 3))') + assertResultAsString('tuples(1.to(5), 2.to(3)).filter(((x, y)) => x < y)', 'Set((1, 2), (1, 3), (2, 3))') }) it('computes filter over intervals', () => { @@ -636,15 +636,15 @@ describe('compiling specs to runtime values', () => { describe('compile over tuples', () => { it('tuple constructors', () => { - assertResultAsString('Tup(1, 2, 3)', 'Tup(1, 2, 3)') - assertResultAsString('(1, 2, 3)', 'Tup(1, 2, 3)') - assertResultAsString('(1, 2, 3,)', 'Tup(1, 2, 3)') + assertResultAsString('(1, 2, 3)', '(1, 2, 3)') + assertResultAsString('(1, 2, 3)', '(1, 2, 3)') + assertResultAsString('(1, 2, 3,)', '(1, 2, 3)') }) it('tuple access', () => { - assertResultAsString('Tup(4, 5, 6)._1', '4') - assertResultAsString('Tup(4, 5, 6)._2', '5') - assertResultAsString('Tup(4, 5, 6)._3', '6') + assertResultAsString('(4, 5, 6)._1', '4') + assertResultAsString('(4, 5, 6)._2', '5') + assertResultAsString('(4, 5, 6)._3', '6') }) it('tuple equality', () => { @@ -656,13 +656,13 @@ describe('compiling specs to runtime values', () => { assertResultAsString('tuples(Set(), Set(), Set())', 'Set()') assertResultAsString('tuples(Set(), 2.to(3))', 'Set()') assertResultAsString('tuples(2.to(3), Set(), 3.to(5))', 'Set()') - assertResultAsString('tuples(1.to(2), 2.to(3))', 'Set(Tup(1, 2), Tup(2, 2), Tup(1, 3), Tup(2, 3))') - assertResultAsString('tuples(1.to(1), 1.to(1), 1.to(1))', 'Set(Tup(1, 1, 1))') + assertResultAsString('tuples(1.to(2), 2.to(3))', 'Set((1, 2), (2, 2), (1, 3), (2, 3))') + assertResultAsString('tuples(1.to(1), 1.to(1), 1.to(1))', 'Set((1, 1, 1))') assertResultAsString('tuples(1.to(3), 2.to(4)) == tuples(1.to(3), 2.to(5 - 1))', 'true') assertResultAsString('tuples(1.to(3), 2.to(4)) == tuples(1.to(3), 2.to(5 + 1))', 'false') assertResultAsString('tuples(1.to(3), 2.to(4)).subseteq(tuples(1.to(3), 2.to(5 + 1)))', 'true') assertResultAsString('tuples(1.to(4), 2.to(4)).subseteq(tuples(1.to(3), 2.to(5)))', 'false') - assertResultAsString('Set(tuples(1.to(2), 2.to(3)))', 'Set(Set(Tup(1, 2), Tup(1, 3), Tup(2, 2), Tup(2, 3)))') + assertResultAsString('Set(tuples(1.to(2), 2.to(3)))', 'Set(Set((1, 2), (1, 3), (2, 2), (2, 3)))') }) it('cardinality of cross products', () => { @@ -815,7 +815,7 @@ describe('compiling specs to runtime values', () => { it('can compile construction of sum type variants', () => { const context = 'type T = Some(int) | None' assertResultAsString('Some(40 + 2)', 'variant("Some", 42)', context) - assertResultAsString('None', 'variant("None", Tup())', context) + assertResultAsString('None', 'variant("None", ())', context) }) it('can compile elimination of sum type variants via match', () => { @@ -833,16 +833,16 @@ describe('compiling specs to runtime values', () => { describe('compile over maps', () => { it('mapBy constructor', () => { - assertResultAsString('3.to(5).mapBy(i => 2 * i)', 'Map(Tup(3, 6), Tup(4, 8), Tup(5, 10))') - assertResultAsString('Set(2.to(4)).mapBy(s => s.size())', 'Map(Tup(Set(2, 3, 4), 3))') + assertResultAsString('3.to(5).mapBy(i => 2 * i)', 'Map((3, 6), (4, 8), (5, 10))') + assertResultAsString('Set(2.to(4)).mapBy(s => s.size())', 'Map((Set(2, 3, 4), 3))') }) it('setToMap constructor', () => { - assertResultAsString('setToMap(Set((3, 6), (4, 10 - 2), (5, 10)))', 'Map(Tup(3, 6), Tup(4, 8), Tup(5, 10))') + assertResultAsString('setToMap(Set((3, 6), (4, 10 - 2), (5, 10)))', 'Map((3, 6), (4, 8), (5, 10))') }) it('mapOf constructor', () => { - assertResultAsString('Map(3 -> 6, 4 -> 10 - 2, 5 -> 10)', 'Map(Tup(3, 6), Tup(4, 8), Tup(5, 10))') + assertResultAsString('Map(3 -> 6, 4 -> 10 - 2, 5 -> 10)', 'Map((3, 6), (4, 8), (5, 10))') }) it('map get', () => { @@ -851,14 +851,14 @@ describe('compiling specs to runtime values', () => { }) it('map update', () => { - assertResultAsString('3.to(5).mapBy(i => 2 * i).set(4, 20)', 'Map(Tup(3, 6), Tup(4, 20), Tup(5, 10))') + assertResultAsString('3.to(5).mapBy(i => 2 * i).set(4, 20)', 'Map((3, 6), (4, 20), (5, 10))') assertResultAsString('3.to(5).mapBy(i => 2 * i).set(7, 20)', undefined) }) it('map setBy', () => { assertResultAsString( '3.to(5).mapBy(i => 2 * i).setBy(4, old => old + 1)', - 'Map(Tup(3, 6), Tup(4, 9), Tup(5, 10))' + 'Map((3, 6), (4, 9), (5, 10))' ) assertResultAsString('3.to(5).mapBy(i => 2 * i).setBy(7, old => old + 1)', undefined) }) @@ -866,7 +866,7 @@ describe('compiling specs to runtime values', () => { it('map put', () => { assertResultAsString( '3.to(5).mapBy(i => 2 * i).put(10, 11)', - 'Map(Tup(10, 11), Tup(3, 6), Tup(4, 8), Tup(5, 10))' + 'Map((10, 11), (3, 6), (4, 8), (5, 10))' ) }) @@ -882,7 +882,7 @@ describe('compiling specs to runtime values', () => { it('map setOfMaps', () => { assertResultAsString( '2.to(3).setOfMaps(5.to(6))', - 'Set(Map(Tup(2, 5), Tup(3, 5)), Map(Tup(2, 6), Tup(3, 5)), Map(Tup(2, 5), Tup(3, 6)), Map(Tup(2, 6), Tup(3, 6)))' + 'Set(Map((2, 5), (3, 5)), Map((2, 6), (3, 5)), Map((2, 5), (3, 6)), Map((2, 6), (3, 6)))' ) assertResultAsString( `2.to(3).setOfMaps(5.to(6)) == @@ -892,8 +892,8 @@ describe('compiling specs to runtime values', () => { Map(2 -> 6, 3 -> 6))`, 'true' ) - assertResultAsString('Set(2).setOfMaps(5.to(6))', 'Set(Map(Tup(2, 5)), Map(Tup(2, 6)))') - assertResultAsString('2.to(3).setOfMaps(Set(5))', 'Set(Map(Tup(2, 5), Tup(3, 5)))') + assertResultAsString('Set(2).setOfMaps(5.to(6))', 'Set(Map((2, 5)), Map((2, 6)))') + assertResultAsString('2.to(3).setOfMaps(Set(5))', 'Set(Map((2, 5), (3, 5)))') assertResultAsString('2.to(4).setOfMaps(5.to(8)).size()', '64') assertResultAsString('2.to(4).setOfMaps(5.to(7)).subseteq(2.to(4).setOfMaps(4.to(8)))', 'true') assertResultAsString('2.to(4).setOfMaps(5.to(10)).subseteq(2.to(4).setOfMaps(4.to(8)))', 'false') diff --git a/quint/test/types/aliasInliner.test.ts b/quint/test/types/aliasInliner.test.ts index 931b738ba..9b8f4a309 100644 --- a/quint/test/types/aliasInliner.test.ts +++ b/quint/test/types/aliasInliner.test.ts @@ -71,11 +71,11 @@ describe('inlineAliases', () => { const expectedModule = dedent(`module A { | type T1 = (B | C) - | val C: (B | C) = variant("C", Tup()) + | val C: (B | C) = variant("C", ()) | type T2 = (Some((B | C)) | None) - | val B: (B | C) = variant("B", Tup()) + | val B: (B | C) = variant("B", ()) | def Some: ((B | C)) => (Some((B | C)) | None) = ((__SomeParam) => variant("Some", __SomeParam)) - | val None: (Some((B | C)) | None) = variant("None", Tup()) + | val None: (Some((B | C)) | None) = variant("None", ()) | var x: (Some((B | C)) | None) |}`) diff --git a/quint/test/util.ts b/quint/test/util.ts index 04c5bb3fd..270a090c2 100644 --- a/quint/test/util.ts +++ b/quint/test/util.ts @@ -75,6 +75,10 @@ export function quintExAreEqual(a: QuintEx, b: QuintEx): boolean { return a.value === b.value } else if (a.kind === 'app' && b.kind === 'app') { return a.args.length === b.args.length && zip(a.args, b.args).every(([x, y]) => quintExAreEqual(x, y)) + } else if (a.kind === 'tuple' && b.kind === 'tuple') { + return ( + a.elements.length === b.elements.length && zip(a.elements, b.elements).every(([x, y]) => quintExAreEqual(x, y)) + ) } else if (a.kind === 'lambda' && b.kind === 'lambda') { return ( a.qualifier === b.qualifier && From 728fb3820234463cc8763fd015cce4c878727941 Mon Sep 17 00:00:00 2001 From: mahtab75 Date: Sun, 29 Sep 2024 20:32:52 -0400 Subject: [PATCH 02/14] added tests --- quint/SuperSpec.json | 1 + quint/src/effects/inferrer.ts | 2 +- quint/src/ir/IRTransformer.ts | 18 +++++++++--------- quint/src/ir/namespacer.ts | 2 +- quint/src/itf.ts | 2 +- quint/src/parsing/ToIrListener.ts | 7 ++++--- quint/src/runtime/impl/runtimeValue.ts | 3 ++- quint/src/static/callgraph.ts | 2 +- quint/src/types/constraintGenerator.ts | 2 +- quint/test/runtime/compile.test.ts | 10 ++-------- quint/testFixture/SuperSpec.json | 2 +- quint/testFixture/SuperSpec.map.json | 2 +- quint/testFixture/SuperSpec.qnt | 6 ++++-- quint/testFixture/_1043sumTypeDecl.json | 2 +- quint/testFixture/_1044matchExpression.json | 2 +- 15 files changed, 31 insertions(+), 32 deletions(-) create mode 100644 quint/SuperSpec.json diff --git a/quint/SuperSpec.json b/quint/SuperSpec.json new file mode 100644 index 000000000..4c4dc6535 --- /dev/null +++ b/quint/SuperSpec.json @@ -0,0 +1 @@ +{"stage":"loading","errors":[]} \ No newline at end of file diff --git a/quint/src/effects/inferrer.ts b/quint/src/effects/inferrer.ts index 48febb4db..790200e38 100644 --- a/quint/src/effects/inferrer.ts +++ b/quint/src/effects/inferrer.ts @@ -29,8 +29,8 @@ import { QuintName, QuintOpDef, QuintStr, + QuintTup, QuintVar, - QuintTup } from '../ir/quintIr' import { Effect, EffectScheme, Signature, effectNames, entityNames, toScheme, unify } from './base' import { Substitutions, applySubstitution, compose } from './substitutions' diff --git a/quint/src/ir/IRTransformer.ts b/quint/src/ir/IRTransformer.ts index 45f3f93d5..c78587452 100644 --- a/quint/src/ir/IRTransformer.ts +++ b/quint/src/ir/IRTransformer.ts @@ -523,15 +523,15 @@ function transformExpression(transformer: IRTransformer, expr: ir.QuintEx): ir.Q } } break - - case 'tuple': // Add this case for tuple - if (transformer.enterTuple) { - newExpr = transformer.enterTuple(newExpr) - } - newExpr.elements = newExpr.elements.map(element => transformExpression(transformer, element)) - if (transformer.exitTuple) { - newExpr = transformer.exitTuple(newExpr) - } + + case 'tuple': // Add this case for tuple + if (transformer.enterTuple) { + newExpr = transformer.enterTuple(newExpr) + } + newExpr.elements = newExpr.elements.map(element => transformExpression(transformer, element)) + if (transformer.exitTuple) { + newExpr = transformer.exitTuple(newExpr) + } break default: diff --git a/quint/src/ir/namespacer.ts b/quint/src/ir/namespacer.ts index b9f7b0cd0..31cd8660b 100644 --- a/quint/src/ir/namespacer.ts +++ b/quint/src/ir/namespacer.ts @@ -83,7 +83,7 @@ class Namespacer implements IRTransformer { elements: namespacedElements, } } - + exitApp(expr: QuintApp): QuintApp { if (!this.namesToPreserve.has(expr.opcode)) { return { ...expr, opcode: namespacedName(this.namespace, expr.opcode) } diff --git a/quint/src/itf.ts b/quint/src/itf.ts index 29856c0ba..cbe5dfd14 100644 --- a/quint/src/itf.ts +++ b/quint/src/itf.ts @@ -11,7 +11,7 @@ import { Either, left, merge, right } from '@sweet-monads/either' import { chunk } from 'lodash' -import { QuintTup, QuintStr } from './ir/quintIr' +import { QuintStr, QuintTup } from './ir/quintIr' import { QuintEx } from './ir/quintIr' diff --git a/quint/src/parsing/ToIrListener.ts b/quint/src/parsing/ToIrListener.ts index a5ba148c8..f42601cd7 100644 --- a/quint/src/parsing/ToIrListener.ts +++ b/quint/src/parsing/ToIrListener.ts @@ -8,7 +8,6 @@ import { QuintDeclaration, QuintDef, QuintEx, - QuintTup, QuintLambda, QuintLambdaParameter, QuintLet, @@ -16,7 +15,8 @@ import { QuintName, QuintOpDef, QuintStr, - isAnnotatedDef + QuintTup, + isAnnotatedDef, } from '../ir/quintIr' import { ConcreteFixedRow, @@ -772,7 +772,8 @@ export class ToIrListener implements QuintListener { exitRecord(ctx: p.RecordContext) { const elems = popMany(this.exprStack, ctx.recElem().length, this.undefinedExpr(ctx)) const spreads = elems.filter(e => e.kind === 'tuple' && e.elements.length === 1) - const pairs = elems.map(e => (e.kind === 'tuple' && e.elements.length === 2 ? e.elements : [])) + const pairs = elems + .map(e => (e.kind === 'tuple' && e.elements.length === 2 ? e.elements : [])) .filter(es => es.length > 0) if (spreads.length === 0) { diff --git a/quint/src/runtime/impl/runtimeValue.ts b/quint/src/runtime/impl/runtimeValue.ts index a25cb0c24..b8ae2158c 100644 --- a/quint/src/runtime/impl/runtimeValue.ts +++ b/quint/src/runtime/impl/runtimeValue.ts @@ -932,7 +932,8 @@ class RuntimeValueList extends RuntimeValueBase implements RuntimeValue { for (const e of this.list) { normalizedValues.push(e.normalForm()) } - return new RuntimeValueList(List(normalizedValues)) } + return new RuntimeValueList(List(normalizedValues)) + } hashCode(): number { return this.list.hashCode() diff --git a/quint/src/static/callgraph.ts b/quint/src/static/callgraph.ts index b5cfca7c0..d23a8be85 100644 --- a/quint/src/static/callgraph.ts +++ b/quint/src/static/callgraph.ts @@ -23,7 +23,7 @@ import { QuintInstance, QuintModule, QuintName, - QuintTup + QuintTup, } from '../ir/quintIr' import { QuintConstType } from '../ir/quintTypes' diff --git a/quint/src/types/constraintGenerator.ts b/quint/src/types/constraintGenerator.ts index 1ae0fbd5d..a21004daf 100644 --- a/quint/src/types/constraintGenerator.ts +++ b/quint/src/types/constraintGenerator.ts @@ -27,9 +27,9 @@ import { QuintName, QuintOpDef, QuintStr, + QuintTup, QuintVar, isAnnotatedDef, - QuintTup } from '../ir/quintIr' import { QuintType, QuintVarType, rowNames, typeNames } from '../ir/quintTypes' import { expressionToString, rowToString, typeToString } from '../ir/IRprinting' diff --git a/quint/test/runtime/compile.test.ts b/quint/test/runtime/compile.test.ts index 4051f3a68..a8426f034 100644 --- a/quint/test/runtime/compile.test.ts +++ b/quint/test/runtime/compile.test.ts @@ -856,18 +856,12 @@ describe('compiling specs to runtime values', () => { }) it('map setBy', () => { - assertResultAsString( - '3.to(5).mapBy(i => 2 * i).setBy(4, old => old + 1)', - 'Map((3, 6), (4, 9), (5, 10))' - ) + assertResultAsString('3.to(5).mapBy(i => 2 * i).setBy(4, old => old + 1)', 'Map((3, 6), (4, 9), (5, 10))') assertResultAsString('3.to(5).mapBy(i => 2 * i).setBy(7, old => old + 1)', undefined) }) it('map put', () => { - assertResultAsString( - '3.to(5).mapBy(i => 2 * i).put(10, 11)', - 'Map((10, 11), (3, 6), (4, 8), (5, 10))' - ) + assertResultAsString('3.to(5).mapBy(i => 2 * i).put(10, 11)', 'Map((10, 11), (3, 6), (4, 8), (5, 10))') }) it('map keys', () => { diff --git a/quint/testFixture/SuperSpec.json b/quint/testFixture/SuperSpec.json index b92172e6c..bef4991c3 100644 --- a/quint/testFixture/SuperSpec.json +++ b/quint/testFixture/SuperSpec.json @@ -1 +1 @@ -{"stage":"parsing","warnings":[],"modules":[{"id":11,"name":"Proto","declarations":[{"kind":"var","name":"x","typeAnnotation":{"id":9,"kind":"int"},"id":10,"depth":0},{"kind":"const","name":"N","typeAnnotation":{"id":7,"kind":"int"},"id":8,"depth":0}]},{"id":3,"name":"M1","declarations":[{"id":2,"kind":"def","name":"foo","qualifier":"val","expr":{"id":1,"kind":"int","value":4}}]},{"id":6,"name":"M2","declarations":[{"id":5,"kind":"def","name":"bar","qualifier":"val","expr":{"id":4,"kind":"int","value":4}}]},{"id":532,"name":"withConsts","declarations":[{"id":103,"kind":"def","name":"sub_1_to_2","qualifier":"val","expr":{"id":102,"kind":"app","opcode":"isub","args":[{"id":100,"kind":"int","value":1},{"id":101,"kind":"int","value":2}]}},{"id":107,"kind":"def","name":"mul_2_to_3","qualifier":"val","expr":{"id":106,"kind":"app","opcode":"imul","args":[{"id":104,"kind":"int","value":2},{"id":105,"kind":"int","value":3}]}},{"id":111,"kind":"def","name":"div_2_to_3","qualifier":"val","expr":{"id":110,"kind":"app","opcode":"idiv","args":[{"id":108,"kind":"int","value":2},{"id":109,"kind":"int","value":3}]}},{"id":115,"kind":"def","name":"mod_2_to_3","qualifier":"val","expr":{"id":114,"kind":"app","opcode":"imod","args":[{"id":112,"kind":"int","value":2},{"id":113,"kind":"int","value":3}]}},{"id":119,"kind":"def","name":"pow_2_to_3","qualifier":"val","expr":{"id":118,"kind":"app","opcode":"ipow","args":[{"id":116,"kind":"int","value":2},{"id":117,"kind":"int","value":3}]}},{"id":122,"kind":"def","name":"uminus","qualifier":"val","expr":{"id":121,"kind":"app","opcode":"iuminus","args":[{"id":120,"kind":"int","value":100}]}},{"id":126,"kind":"def","name":"gt_2_to_3","qualifier":"val","expr":{"id":125,"kind":"app","opcode":"igt","args":[{"id":123,"kind":"int","value":2},{"id":124,"kind":"int","value":3}]}},{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},{"id":130,"kind":"def","name":"ge_2_to_3","qualifier":"val","expr":{"id":129,"kind":"app","opcode":"igte","args":[{"id":127,"kind":"int","value":2},{"id":128,"kind":"int","value":3}]}},{"id":134,"kind":"def","name":"lt_2_to_3","qualifier":"val","expr":{"id":133,"kind":"app","opcode":"ilt","args":[{"id":131,"kind":"int","value":2},{"id":132,"kind":"int","value":3}]}},{"id":138,"kind":"def","name":"le_2_to_3","qualifier":"val","expr":{"id":137,"kind":"app","opcode":"ilte","args":[{"id":135,"kind":"int","value":2},{"id":136,"kind":"int","value":3}]}},{"id":142,"kind":"def","name":"eqeq_2_to_3","qualifier":"val","expr":{"id":141,"kind":"app","opcode":"eq","args":[{"id":139,"kind":"int","value":2},{"id":140,"kind":"int","value":3}]}},{"id":146,"kind":"def","name":"ne_2_to_3","qualifier":"val","expr":{"id":145,"kind":"app","opcode":"neq","args":[{"id":143,"kind":"int","value":2},{"id":144,"kind":"int","value":3}]}},{"id":152,"kind":"def","name":"VeryTrue","qualifier":"val","expr":{"id":151,"kind":"app","opcode":"eq","args":[{"id":149,"kind":"app","opcode":"iadd","args":[{"id":147,"kind":"int","value":2},{"id":148,"kind":"int","value":2}]},{"id":150,"kind":"int","value":4}]}},{"id":156,"kind":"def","name":"nat_includes_one","qualifier":"val","expr":{"id":155,"kind":"app","opcode":"in","args":[{"id":153,"kind":"int","value":1},{"id":154,"kind":"name","name":"Nat"}]}},{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},{"id":168,"kind":"def","name":"withType","qualifier":"val","expr":{"id":167,"kind":"app","opcode":"Set","args":[{"id":165,"kind":"int","value":1},{"id":166,"kind":"int","value":2}]},"typeAnnotation":{"id":164,"kind":"set","elem":{"id":163,"kind":"int"}}},{"id":169,"kind":"typedef","name":"PROC","depth":0},{"kind":"var","name":"n","typeAnnotation":{"id":174,"kind":"int"},"id":175,"depth":0},{"id":177,"kind":"def","name":"magicNumber","qualifier":"pureval","expr":{"id":176,"kind":"int","value":42}},{"kind":"const","name":"MySet","typeAnnotation":{"id":18,"kind":"set","elem":{"id":17,"kind":"int"}},"id":19,"depth":0},{"kind":"const","name":"MySeq","typeAnnotation":{"id":21,"kind":"list","elem":{"id":20,"kind":"bool"}},"id":22,"depth":0},{"kind":"var","name":"k","typeAnnotation":{"id":220,"kind":"int"},"id":221,"depth":0},{"id":242,"kind":"def","name":"test_and","qualifier":"val","expr":{"id":241,"kind":"app","opcode":"and","args":[{"id":239,"kind":"bool","value":false},{"id":240,"kind":"bool","value":true}]}},{"id":246,"kind":"def","name":"test_or","qualifier":"val","expr":{"id":245,"kind":"app","opcode":"or","args":[{"id":243,"kind":"bool","value":false},{"id":244,"kind":"bool","value":true}]}},{"id":250,"kind":"def","name":"test_implies","qualifier":"val","expr":{"id":249,"kind":"app","opcode":"implies","args":[{"id":247,"kind":"bool","value":false},{"id":248,"kind":"bool","value":true}]}},{"kind":"const","name":"MyFun","typeAnnotation":{"id":25,"kind":"fun","arg":{"id":23,"kind":"int"},"res":{"id":24,"kind":"str"}},"id":26,"depth":0},{"id":283,"kind":"def","name":"test_block_and","qualifier":"val","expr":{"id":282,"kind":"app","opcode":"and","args":[{"id":279,"kind":"bool","value":false},{"id":280,"kind":"bool","value":true},{"id":281,"kind":"bool","value":false}]}},{"id":288,"kind":"def","name":"test_action_and","qualifier":"action","expr":{"id":287,"kind":"app","opcode":"actionAll","args":[{"id":284,"kind":"bool","value":false},{"id":285,"kind":"bool","value":true},{"id":286,"kind":"bool","value":false}]}},{"id":293,"kind":"def","name":"test_block_or","qualifier":"val","expr":{"id":292,"kind":"app","opcode":"or","args":[{"id":289,"kind":"bool","value":false},{"id":290,"kind":"bool","value":true},{"id":291,"kind":"bool","value":false}]}},{"id":298,"kind":"def","name":"test_action_or","qualifier":"action","expr":{"id":297,"kind":"app","opcode":"actionAny","args":[{"id":294,"kind":"bool","value":false},{"id":295,"kind":"bool","value":true},{"id":296,"kind":"bool","value":false}]}},{"id":303,"kind":"def","name":"test_ite","qualifier":"val","expr":{"id":302,"kind":"app","opcode":"ite","args":[{"id":299,"kind":"bool","value":true},{"id":300,"kind":"int","value":1},{"id":301,"kind":"int","value":0}]}},{"kind":"const","name":"MyFunFun","typeAnnotation":{"id":31,"kind":"fun","arg":{"id":29,"kind":"fun","arg":{"id":27,"kind":"int"},"res":{"id":28,"kind":"str"}},"res":{"id":30,"kind":"bool"}},"id":32,"depth":0},{"kind":"var","name":"f1","typeAnnotation":{"id":320,"kind":"fun","arg":{"id":318,"kind":"str"},"res":{"id":319,"kind":"int"}},"id":321,"depth":0},{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}}},{"id":342,"kind":"def","name":"oper_in","qualifier":"val","expr":{"id":341,"kind":"app","opcode":"in","args":[{"id":339,"kind":"int","value":1},{"id":340,"kind":"app","opcode":"Set","args":[]}]}},{"kind":"const","name":"MyOperator","typeAnnotation":{"id":36,"kind":"oper","args":[{"id":33,"kind":"int"},{"id":34,"kind":"str"}],"res":{"id":35,"kind":"bool"}},"id":37,"depth":0},{"id":407,"kind":"def","name":"one","qualifier":"val","expr":{"id":406,"kind":"app","opcode":"head","args":[{"id":405,"kind":"app","opcode":"List","args":[{"id":403,"kind":"int","value":1},{"id":404,"kind":"int","value":2}]}]}},{"id":412,"kind":"def","name":"test_tuple","qualifier":"val","expr":{"id":411,"kind":"app","opcode":"Tup","args":[{"id":408,"kind":"int","value":1},{"id":409,"kind":"int","value":2},{"id":410,"kind":"int","value":3}]}},{"id":417,"kind":"def","name":"test_tuple2","qualifier":"val","expr":{"id":416,"kind":"app","opcode":"Tup","args":[{"id":413,"kind":"int","value":1},{"id":414,"kind":"int","value":2},{"id":415,"kind":"int","value":3}]}},{"kind":"const","name":"MyOperatorWithComma","typeAnnotation":{"id":41,"kind":"oper","args":[{"id":38,"kind":"int"},{"id":39,"kind":"str"}],"res":{"id":40,"kind":"bool"}},"id":42,"depth":0},{"id":421,"kind":"def","name":"test_pair","qualifier":"val","expr":{"id":420,"kind":"app","opcode":"Tup","args":[{"id":418,"kind":"int","value":4},{"id":419,"kind":"int","value":5}]}},{"id":426,"kind":"def","name":"test_list","qualifier":"val","expr":{"id":425,"kind":"app","opcode":"List","args":[{"id":422,"kind":"int","value":1},{"id":423,"kind":"int","value":2},{"id":424,"kind":"int","value":3}]}},{"id":431,"kind":"def","name":"test_list2","qualifier":"val","expr":{"id":430,"kind":"app","opcode":"List","args":[{"id":427,"kind":"int","value":1},{"id":428,"kind":"int","value":2},{"id":429,"kind":"int","value":3}]}},{"id":438,"kind":"def","name":"test_list_nth","qualifier":"val","expr":{"id":437,"kind":"app","opcode":"nth","args":[{"id":435,"kind":"app","opcode":"List","args":[{"id":432,"kind":"int","value":2},{"id":433,"kind":"int","value":3},{"id":434,"kind":"int","value":4}]},{"id":436,"kind":"int","value":2}]}},{"id":444,"kind":"def","name":"test_record","qualifier":"val","expr":{"id":443,"kind":"app","opcode":"Rec","args":[{"id":440,"kind":"str","value":"name"},{"id":439,"kind":"str","value":"igor"},{"id":442,"kind":"str","value":"year"},{"id":441,"kind":"int","value":1981}]}},{"id":450,"kind":"def","name":"test_record2","qualifier":"val","expr":{"id":449,"kind":"app","opcode":"Rec","args":[{"id":445,"kind":"str","value":"name"},{"id":446,"kind":"str","value":"igor"},{"id":447,"kind":"str","value":"year"},{"id":448,"kind":"int","value":1981}]}},{"id":463,"kind":"def","name":"test_set","qualifier":"val","expr":{"id":462,"kind":"app","opcode":"Set","args":[{"id":459,"kind":"int","value":1},{"id":460,"kind":"int","value":2},{"id":461,"kind":"int","value":3}]}},{"kind":"const","name":"MyTuple","typeAnnotation":{"id":46,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":43,"kind":"int"}},{"fieldName":"1","fieldType":{"id":44,"kind":"bool"}},{"fieldName":"2","fieldType":{"id":45,"kind":"str"}}],"other":{"kind":"empty"}}},"id":47,"depth":0},{"id":493,"kind":"def","name":"in_2_empty","qualifier":"val","expr":{"id":492,"kind":"app","opcode":"in","args":[{"id":490,"kind":"int","value":2},{"id":491,"kind":"app","opcode":"Set","args":[]}]}},{"id":497,"kind":"def","name":"subseteq_empty","qualifier":"val","expr":{"id":496,"kind":"app","opcode":"subseteq","args":[{"id":494,"kind":"app","opcode":"Set","args":[]},{"id":495,"kind":"app","opcode":"Set","args":[]}]}},{"id":506,"kind":"def","name":"powersets","qualifier":"val","expr":{"id":505,"kind":"app","opcode":"in","args":[{"id":499,"kind":"app","opcode":"Set","args":[{"id":498,"kind":"int","value":1}]},{"id":504,"kind":"app","opcode":"powerset","args":[{"id":503,"kind":"app","opcode":"Set","args":[{"id":500,"kind":"int","value":1},{"id":501,"kind":"int","value":2},{"id":502,"kind":"int","value":3}]}]}]}},{"id":512,"kind":"def","name":"lists","qualifier":"val","expr":{"id":511,"kind":"app","opcode":"allListsUpTo","args":[{"id":509,"kind":"app","opcode":"Set","args":[{"id":507,"kind":"int","value":1},{"id":508,"kind":"int","value":2}]},{"id":510,"kind":"int","value":3}]}},{"kind":"const","name":"MyTupleWithComma","typeAnnotation":{"id":51,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":48,"kind":"int"}},{"fieldName":"1","fieldType":{"id":49,"kind":"bool"}},{"fieldName":"2","fieldType":{"id":50,"kind":"str"}}],"other":{"kind":"empty"}}},"id":52,"depth":0},{"id":525,"kind":"typedef","name":"INT_SET","type":{"id":524,"kind":"set","elem":{"id":523,"kind":"int"}},"depth":0},{"id":526,"kind":"typedef","name":"UNINTERPRETED_TYPE","depth":0},{"kind":"const","name":"MyRecord","typeAnnotation":{"id":56,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"i","fieldType":{"id":53,"kind":"int"}},{"fieldName":"b","fieldType":{"id":54,"kind":"bool"}},{"fieldName":"s","fieldType":{"id":55,"kind":"str"}}],"other":{"kind":"empty"}}},"id":57,"depth":0},{"kind":"const","name":"MyRecordWithComma","typeAnnotation":{"id":61,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"i","fieldType":{"id":58,"kind":"int"}},{"fieldName":"b","fieldType":{"id":59,"kind":"bool"}},{"fieldName":"s","fieldType":{"id":60,"kind":"str"}}],"other":{"kind":"empty"}}},"id":62,"depth":0},{"id":64,"kind":"typedef","name":"some::namespace::MyType","type":{"id":63,"kind":"int"},"depth":0},{"id":70,"kind":"typedef","name":"MyUnionType","type":{"id":70,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"Circle","fieldType":{"id":65,"kind":"int"}},{"fieldName":"Rectangle","fieldType":{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}},{"fieldName":"Dog","fieldType":{"id":69,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},{"kind":"var","name":"i","typeAnnotation":{"id":92,"kind":"int"},"id":93,"depth":0},{"kind":"var","name":"j","typeAnnotation":{"id":94,"kind":"bool"},"id":95,"depth":0},{"id":99,"kind":"def","name":"add_1_to_2","qualifier":"val","expr":{"id":98,"kind":"app","opcode":"iadd","args":[{"id":96,"kind":"int","value":1},{"id":97,"kind":"int","value":2}]}},{"id":162,"kind":"def","name":"there_is_truth","qualifier":"val","expr":{"id":161,"kind":"app","opcode":"exists","args":[{"id":157,"kind":"name","name":"Bool"},{"id":160,"kind":"lambda","params":[{"id":158,"name":"x"}],"qualifier":"def","expr":{"id":159,"kind":"name","name":"x"}}]}},{"id":173,"kind":"def","name":"withUninterpretedType","qualifier":"val","expr":{"id":172,"kind":"app","opcode":"Set","args":[]},"typeAnnotation":{"id":171,"kind":"set","elem":{"id":170,"kind":"const","name":"PROC"}}},{"id":184,"kind":"def","name":"add","qualifier":"puredef","expr":{"id":183,"kind":"lambda","params":[{"id":178,"name":"x"},{"id":179,"name":"y"}],"qualifier":"puredef","expr":{"id":182,"kind":"app","opcode":"iadd","args":[{"id":180,"kind":"name","name":"x"},{"id":181,"kind":"name","name":"y"}]}}},{"id":190,"kind":"def","name":"ofN","qualifier":"def","expr":{"id":189,"kind":"lambda","params":[{"id":185,"name":"factor"}],"qualifier":"def","expr":{"id":188,"kind":"app","opcode":"imul","args":[{"id":186,"kind":"name","name":"factor"},{"id":187,"kind":"name","name":"n"}]}}},{"id":196,"kind":"def","name":"A","qualifier":"action","expr":{"id":195,"kind":"lambda","params":[{"id":191,"name":"x"}],"qualifier":"action","expr":{"id":194,"kind":"app","opcode":"assign","args":[{"id":193,"kind":"name","name":"n"},{"id":192,"kind":"name","name":"x"}]}}},{"id":201,"kind":"def","name":"B","qualifier":"puredef","expr":{"id":200,"kind":"lambda","params":[{"id":197,"name":"x"}],"qualifier":"puredef","expr":{"id":199,"kind":"app","opcode":"not","args":[{"id":198,"kind":"name","name":"x"}]}}},{"id":212,"kind":"def","name":"H","qualifier":"def","expr":{"id":211,"kind":"lambda","params":[{"id":202,"name":"x"},{"id":203,"name":"y"}],"qualifier":"def","expr":{"id":210,"kind":"app","opcode":"iadd","args":[{"id":208,"kind":"name","name":"x"},{"id":209,"kind":"name","name":"y"}]}},"typeAnnotation":{"id":207,"kind":"oper","args":[{"id":204,"kind":"int"},{"id":205,"kind":"int"}],"res":{"id":206,"kind":"int"}}},{"id":219,"kind":"def","name":"Pol","qualifier":"def","expr":{"id":218,"kind":"lambda","params":[{"id":213,"name":"x"}],"qualifier":"def","expr":{"id":217,"kind":"name","name":"x"}},"typeAnnotation":{"id":216,"kind":"oper","args":[{"id":214,"kind":"var","name":"a"}],"res":{"id":215,"kind":"var","name":"a"}}},{"id":225,"kind":"def","name":"asgn","qualifier":"action","expr":{"id":224,"kind":"app","opcode":"assign","args":[{"id":223,"kind":"name","name":"k"},{"id":222,"kind":"int","value":3}]}},{"id":238,"kind":"def","name":"min","qualifier":"puredef","expr":{"id":237,"kind":"lambda","params":[{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"}},{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"}}],"qualifier":"puredef","expr":{"id":236,"kind":"app","opcode":"ite","args":[{"id":233,"kind":"app","opcode":"ilt","args":[{"id":231,"kind":"name","name":"x"},{"id":232,"kind":"name","name":"y"}]},{"id":234,"kind":"name","name":"x"},{"id":235,"kind":"name","name":"y"}]}},"typeAnnotation":{"kind":"oper","args":[{"id":226,"kind":"int"},{"id":228,"kind":"int"}],"res":{"id":230,"kind":"int"}}},{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}}},{"id":317,"kind":"def","name":"test_ite2","qualifier":"def","expr":{"id":316,"kind":"lambda","params":[{"id":304,"name":"x"},{"id":305,"name":"y"}],"qualifier":"def","expr":{"id":315,"kind":"app","opcode":"ite","args":[{"id":308,"kind":"app","opcode":"ilt","args":[{"id":306,"kind":"name","name":"x"},{"id":307,"kind":"int","value":10}]},{"id":311,"kind":"app","opcode":"iadd","args":[{"id":309,"kind":"name","name":"y"},{"id":310,"kind":"int","value":5}]},{"id":314,"kind":"app","opcode":"imod","args":[{"id":312,"kind":"name","name":"y"},{"id":313,"kind":"int","value":5}]}]}}},{"id":325,"kind":"def","name":"funapp","qualifier":"val","expr":{"id":324,"kind":"app","opcode":"get","args":[{"id":322,"kind":"name","name":"f1"},{"id":323,"kind":"str","value":"a"}]}},{"id":334,"kind":"def","name":"oper_app_normal","qualifier":"val","expr":{"id":333,"kind":"app","opcode":"MyOper","args":[{"id":331,"kind":"str","value":"a"},{"id":332,"kind":"int","value":42}]}},{"id":338,"kind":"def","name":"oper_app_ufcs","qualifier":"val","expr":{"id":337,"kind":"app","opcode":"MyOper","args":[{"id":335,"kind":"str","value":"a"},{"id":336,"kind":"int","value":42}]}},{"id":350,"kind":"def","name":"oper_app_dot1","qualifier":"val","expr":{"id":349,"kind":"app","opcode":"filter","args":[{"id":343,"kind":"name","name":"S"},{"id":348,"kind":"lambda","params":[{"id":344,"name":"x"}],"qualifier":"def","expr":{"id":347,"kind":"app","opcode":"igt","args":[{"id":345,"kind":"name","name":"x"},{"id":346,"kind":"int","value":10}]}}]}},{"id":388,"kind":"def","name":"oper_app_dot4","qualifier":"val","expr":{"id":387,"kind":"app","opcode":"filter","args":[{"id":383,"kind":"name","name":"S"},{"id":386,"kind":"lambda","params":[{"id":384,"name":"_"}],"qualifier":"def","expr":{"id":385,"kind":"bool","value":true}}]}},{"id":396,"kind":"def","name":"f","qualifier":"val","expr":{"id":395,"kind":"app","opcode":"mapBy","args":[{"id":389,"kind":"name","name":"S"},{"id":394,"kind":"lambda","params":[{"id":390,"name":"x"}],"qualifier":"def","expr":{"id":393,"kind":"app","opcode":"iadd","args":[{"id":391,"kind":"name","name":"x"},{"id":392,"kind":"int","value":1}]}}]}},{"id":402,"kind":"def","name":"set_difference","qualifier":"val","expr":{"id":401,"kind":"app","opcode":"exclude","args":[{"id":397,"kind":"name","name":"S"},{"id":400,"kind":"app","opcode":"Set","args":[{"id":398,"kind":"int","value":3},{"id":399,"kind":"int","value":4}]}]}},{"id":458,"kind":"def","name":"test_record3","qualifier":"val","expr":{"id":457,"kind":"app","opcode":"with","args":[{"id":456,"kind":"app","opcode":"with","args":[{"id":455,"kind":"name","name":"test_record"},{"id":452,"kind":"str","value":"name"},{"id":451,"kind":"str","value":"quint"}]},{"id":454,"kind":"str","value":"year"},{"id":453,"kind":"int","value":2023}]}},{"id":474,"kind":"def","name":"rec_field","qualifier":"val","expr":{"id":473,"kind":"let","opdef":{"id":469,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":468,"kind":"app","opcode":"Rec","args":[{"id":465,"kind":"str","value":"a"},{"id":464,"kind":"int","value":1},{"id":467,"kind":"str","value":"b"},{"id":466,"kind":"str","value":"foo"}]}},"expr":{"id":472,"kind":"app","opcode":"field","args":[{"id":470,"kind":"name","name":"my_rec"},{"id":471,"kind":"str","value":"a"}]}}},{"id":483,"kind":"def","name":"tup_elem","qualifier":"val","expr":{"id":482,"kind":"let","opdef":{"id":478,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":477,"kind":"app","opcode":"Tup","args":[{"id":475,"kind":"str","value":"a"},{"id":476,"kind":"int","value":3}]}},"expr":{"id":481,"kind":"app","opcode":"item","args":[{"id":479,"kind":"name","name":"my_tup"},{"id":480,"kind":"int","value":2}]}}},{"id":489,"kind":"def","name":"isEmpty","qualifier":"def","expr":{"id":488,"kind":"lambda","params":[{"id":484,"name":"s"}],"qualifier":"def","expr":{"id":487,"kind":"app","opcode":"eq","args":[{"id":485,"kind":"name","name":"s"},{"id":486,"kind":"app","opcode":"List","args":[]}]}}},{"id":516,"kind":"assume","name":"positive","assumption":{"id":515,"kind":"app","opcode":"igt","args":[{"id":513,"kind":"name","name":"N"},{"id":514,"kind":"int","value":0}]},"depth":0},{"id":520,"kind":"assume","name":"_","assumption":{"id":519,"kind":"app","opcode":"neq","args":[{"id":517,"kind":"name","name":"N"},{"id":518,"kind":"int","value":0}]}},{"id":521,"kind":"import","defName":"foo","protoName":"M1"},{"id":522,"kind":"import","defName":"*","protoName":"M2"},{"kind":"var","name":"S1","typeAnnotation":{"id":527,"kind":"const","name":"INT_SET"},"id":528,"depth":0},{"id":531,"kind":"instance","qualifiedName":"Inst1","protoName":"Proto","overrides":[[{"id":530,"name":"N"},{"id":529,"kind":"name","name":"N"}]],"identityOverride":false},{"id":77,"kind":"def","name":"Circle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":65,"kind":"int"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":76,"kind":"lambda","params":[{"id":73,"name":"__CircleParam"}],"qualifier":"def","expr":{"id":75,"kind":"app","opcode":"variant","args":[{"id":72,"kind":"str","value":"Circle"},{"kind":"name","name":"__CircleParam","id":74}]}}},{"id":83,"kind":"def","name":"Rectangle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":82,"kind":"lambda","params":[{"id":79,"name":"__RectangleParam"}],"qualifier":"def","expr":{"id":81,"kind":"app","opcode":"variant","args":[{"id":78,"kind":"str","value":"Rectangle"},{"kind":"name","name":"__RectangleParam","id":80}]}}},{"id":89,"kind":"def","name":"Dog","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":69,"kind":"str"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":88,"kind":"lambda","params":[{"id":85,"name":"__DogParam"}],"qualifier":"def","expr":{"id":87,"kind":"app","opcode":"variant","args":[{"id":84,"kind":"str","value":"Dog"},{"kind":"name","name":"__DogParam","id":86}]}}},{"kind":"const","name":"MyUnion","typeAnnotation":{"id":90,"kind":"const","name":"MyUnionType"},"id":91,"depth":0},{"id":262,"kind":"def","name":"G","qualifier":"def","expr":{"id":261,"kind":"lambda","params":[{"id":255,"name":"x"}],"qualifier":"def","expr":{"id":260,"kind":"app","opcode":"and","args":[{"id":257,"kind":"app","opcode":"F","args":[{"id":256,"kind":"name","name":"x"}]},{"id":259,"kind":"app","opcode":"not","args":[{"id":258,"kind":"name","name":"x"}]}]}}},{"id":270,"kind":"def","name":"test_and_arg","qualifier":"def","expr":{"id":269,"kind":"lambda","params":[{"id":263,"name":"x"}],"qualifier":"def","expr":{"id":268,"kind":"app","opcode":"and","args":[{"id":265,"kind":"app","opcode":"F","args":[{"id":264,"kind":"name","name":"x"}]},{"id":267,"kind":"app","opcode":"not","args":[{"id":266,"kind":"name","name":"x"}]}]}}},{"id":278,"kind":"def","name":"test_or_arg","qualifier":"def","expr":{"id":277,"kind":"lambda","params":[{"id":271,"name":"x"}],"qualifier":"def","expr":{"id":276,"kind":"app","opcode":"or","args":[{"id":273,"kind":"app","opcode":"F","args":[{"id":272,"kind":"name","name":"x"}]},{"id":275,"kind":"app","opcode":"not","args":[{"id":274,"kind":"name","name":"x"}]}]}}},{"id":370,"kind":"def","name":"tuple_sum","qualifier":"val","expr":{"id":369,"kind":"app","opcode":"map","args":[{"id":353,"kind":"app","opcode":"tuples","args":[{"id":351,"kind":"name","name":"S"},{"id":352,"kind":"name","name":"MySet"}]},{"id":368,"kind":"lambda","params":[{"id":359,"name":"quintTupledLambdaParam359"}],"qualifier":"def","expr":{"id":364,"kind":"let","opdef":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]}},"expr":{"id":360,"kind":"let","opdef":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]}},"expr":{"id":358,"kind":"app","opcode":"iadd","args":[{"id":356,"kind":"name","name":"s"},{"id":357,"kind":"name","name":"mys"}]}}}}]}},{"id":382,"kind":"def","name":"oper_nondet","qualifier":"action","expr":{"id":381,"kind":"let","opdef":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]}},"expr":{"id":380,"kind":"app","opcode":"actionAll","args":[{"id":376,"kind":"app","opcode":"igt","args":[{"id":374,"kind":"name","name":"x"},{"id":375,"kind":"int","value":10}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"k"},{"id":377,"kind":"name","name":"x"}]}]}}}]}],"table":{"2":{"id":2,"kind":"def","name":"foo","qualifier":"val","expr":{"id":1,"kind":"int","value":4},"depth":0},"5":{"id":5,"kind":"def","name":"bar","qualifier":"val","expr":{"id":4,"kind":"int","value":4},"depth":0},"71":{"id":70,"kind":"typedef","name":"MyUnionType","type":{"id":70,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"Circle","fieldType":{"id":65,"kind":"int"}},{"fieldName":"Rectangle","fieldType":{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}},{"fieldName":"Dog","fieldType":{"id":69,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},"74":{"id":73,"name":"__CircleParam","kind":"param","depth":1},"77":{"id":77,"kind":"def","name":"Circle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":65,"kind":"int"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":76,"kind":"lambda","params":[{"id":73,"name":"__CircleParam"}],"qualifier":"def","expr":{"id":75,"kind":"app","opcode":"variant","args":[{"id":72,"kind":"str","value":"Circle"},{"kind":"name","name":"__CircleParam","id":74}]}},"depth":0},"80":{"id":79,"name":"__RectangleParam","kind":"param","depth":1},"83":{"id":83,"kind":"def","name":"Rectangle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":82,"kind":"lambda","params":[{"id":79,"name":"__RectangleParam"}],"qualifier":"def","expr":{"id":81,"kind":"app","opcode":"variant","args":[{"id":78,"kind":"str","value":"Rectangle"},{"kind":"name","name":"__RectangleParam","id":80}]}},"depth":0},"86":{"id":85,"name":"__DogParam","kind":"param","depth":1},"89":{"id":89,"kind":"def","name":"Dog","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":69,"kind":"str"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":88,"kind":"lambda","params":[{"id":85,"name":"__DogParam"}],"qualifier":"def","expr":{"id":87,"kind":"app","opcode":"variant","args":[{"id":84,"kind":"str","value":"Dog"},{"kind":"name","name":"__DogParam","id":86}]}},"depth":0},"90":{"id":70,"kind":"typedef","name":"MyUnionType","type":{"id":70,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"Circle","fieldType":{"id":65,"kind":"int"}},{"fieldName":"Rectangle","fieldType":{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}},{"fieldName":"Dog","fieldType":{"id":69,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},"99":{"id":99,"kind":"def","name":"add_1_to_2","qualifier":"val","expr":{"id":98,"kind":"app","opcode":"iadd","args":[{"id":96,"kind":"int","value":1},{"id":97,"kind":"int","value":2}]},"depth":0},"103":{"id":103,"kind":"def","name":"sub_1_to_2","qualifier":"val","expr":{"id":102,"kind":"app","opcode":"isub","args":[{"id":100,"kind":"int","value":1},{"id":101,"kind":"int","value":2}]},"depth":0},"107":{"id":107,"kind":"def","name":"mul_2_to_3","qualifier":"val","expr":{"id":106,"kind":"app","opcode":"imul","args":[{"id":104,"kind":"int","value":2},{"id":105,"kind":"int","value":3}]},"depth":0},"111":{"id":111,"kind":"def","name":"div_2_to_3","qualifier":"val","expr":{"id":110,"kind":"app","opcode":"idiv","args":[{"id":108,"kind":"int","value":2},{"id":109,"kind":"int","value":3}]},"depth":0},"115":{"id":115,"kind":"def","name":"mod_2_to_3","qualifier":"val","expr":{"id":114,"kind":"app","opcode":"imod","args":[{"id":112,"kind":"int","value":2},{"id":113,"kind":"int","value":3}]},"depth":0},"119":{"id":119,"kind":"def","name":"pow_2_to_3","qualifier":"val","expr":{"id":118,"kind":"app","opcode":"ipow","args":[{"id":116,"kind":"int","value":2},{"id":117,"kind":"int","value":3}]},"depth":0},"122":{"id":122,"kind":"def","name":"uminus","qualifier":"val","expr":{"id":121,"kind":"app","opcode":"iuminus","args":[{"id":120,"kind":"int","value":100}]},"depth":0},"126":{"id":126,"kind":"def","name":"gt_2_to_3","qualifier":"val","expr":{"id":125,"kind":"app","opcode":"igt","args":[{"id":123,"kind":"int","value":2},{"id":124,"kind":"int","value":3}]},"depth":0},"130":{"id":130,"kind":"def","name":"ge_2_to_3","qualifier":"val","expr":{"id":129,"kind":"app","opcode":"igte","args":[{"id":127,"kind":"int","value":2},{"id":128,"kind":"int","value":3}]},"depth":0},"134":{"id":134,"kind":"def","name":"lt_2_to_3","qualifier":"val","expr":{"id":133,"kind":"app","opcode":"ilt","args":[{"id":131,"kind":"int","value":2},{"id":132,"kind":"int","value":3}]},"depth":0},"138":{"id":138,"kind":"def","name":"le_2_to_3","qualifier":"val","expr":{"id":137,"kind":"app","opcode":"ilte","args":[{"id":135,"kind":"int","value":2},{"id":136,"kind":"int","value":3}]},"depth":0},"142":{"id":142,"kind":"def","name":"eqeq_2_to_3","qualifier":"val","expr":{"id":141,"kind":"app","opcode":"eq","args":[{"id":139,"kind":"int","value":2},{"id":140,"kind":"int","value":3}]},"depth":0},"146":{"id":146,"kind":"def","name":"ne_2_to_3","qualifier":"val","expr":{"id":145,"kind":"app","opcode":"neq","args":[{"id":143,"kind":"int","value":2},{"id":144,"kind":"int","value":3}]},"depth":0},"152":{"id":152,"kind":"def","name":"VeryTrue","qualifier":"val","expr":{"id":151,"kind":"app","opcode":"eq","args":[{"id":149,"kind":"app","opcode":"iadd","args":[{"id":147,"kind":"int","value":2},{"id":148,"kind":"int","value":2}]},{"id":150,"kind":"int","value":4}]},"depth":0},"156":{"id":156,"kind":"def","name":"nat_includes_one","qualifier":"val","expr":{"id":155,"kind":"app","opcode":"in","args":[{"id":153,"kind":"int","value":1},{"id":154,"kind":"name","name":"Nat"}]},"depth":0},"159":{"id":158,"name":"x","kind":"param","depth":1},"162":{"id":162,"kind":"def","name":"there_is_truth","qualifier":"val","expr":{"id":161,"kind":"app","opcode":"exists","args":[{"id":157,"kind":"name","name":"Bool"},{"id":160,"kind":"lambda","params":[{"id":158,"name":"x"}],"qualifier":"def","expr":{"id":159,"kind":"name","name":"x"}}]},"depth":0},"168":{"id":168,"kind":"def","name":"withType","qualifier":"val","expr":{"id":167,"kind":"app","opcode":"Set","args":[{"id":165,"kind":"int","value":1},{"id":166,"kind":"int","value":2}]},"typeAnnotation":{"id":164,"kind":"set","elem":{"id":163,"kind":"int"}},"depth":0},"170":{"id":169,"kind":"typedef","name":"PROC","depth":0},"173":{"id":173,"kind":"def","name":"withUninterpretedType","qualifier":"val","expr":{"id":172,"kind":"app","opcode":"Set","args":[]},"typeAnnotation":{"id":171,"kind":"set","elem":{"id":170,"kind":"const","name":"PROC"}},"depth":0},"177":{"id":177,"kind":"def","name":"magicNumber","qualifier":"pureval","expr":{"id":176,"kind":"int","value":42},"depth":0},"180":{"id":178,"name":"x","kind":"param","depth":1,"shadowing":false},"181":{"id":179,"name":"y","kind":"param","depth":1},"184":{"id":184,"kind":"def","name":"add","qualifier":"puredef","expr":{"id":183,"kind":"lambda","params":[{"id":178,"name":"x"},{"id":179,"name":"y"}],"qualifier":"puredef","expr":{"id":182,"kind":"app","opcode":"iadd","args":[{"id":180,"kind":"name","name":"x"},{"id":181,"kind":"name","name":"y"}]}},"depth":0},"186":{"id":185,"name":"factor","kind":"param","depth":1},"187":{"kind":"var","name":"n","typeAnnotation":{"id":174,"kind":"int"},"id":175,"depth":0},"190":{"id":190,"kind":"def","name":"ofN","qualifier":"def","expr":{"id":189,"kind":"lambda","params":[{"id":185,"name":"factor"}],"qualifier":"def","expr":{"id":188,"kind":"app","opcode":"imul","args":[{"id":186,"kind":"name","name":"factor"},{"id":187,"kind":"name","name":"n"}]}},"depth":0},"192":{"id":191,"name":"x","kind":"param","depth":1,"shadowing":false},"193":{"kind":"var","name":"n","typeAnnotation":{"id":174,"kind":"int"},"id":175,"depth":0},"196":{"id":196,"kind":"def","name":"A","qualifier":"action","expr":{"id":195,"kind":"lambda","params":[{"id":191,"name":"x"}],"qualifier":"action","expr":{"id":194,"kind":"app","opcode":"assign","args":[{"id":193,"kind":"name","name":"n"},{"id":192,"kind":"name","name":"x"}]}},"depth":0},"198":{"id":197,"name":"x","kind":"param","depth":1,"shadowing":false},"201":{"id":201,"kind":"def","name":"B","qualifier":"puredef","expr":{"id":200,"kind":"lambda","params":[{"id":197,"name":"x"}],"qualifier":"puredef","expr":{"id":199,"kind":"app","opcode":"not","args":[{"id":198,"kind":"name","name":"x"}]}},"depth":0},"208":{"id":202,"name":"x","kind":"param","depth":1,"shadowing":false},"209":{"id":203,"name":"y","kind":"param","depth":1,"shadowing":false},"212":{"id":212,"kind":"def","name":"H","qualifier":"def","expr":{"id":211,"kind":"lambda","params":[{"id":202,"name":"x"},{"id":203,"name":"y"}],"qualifier":"def","expr":{"id":210,"kind":"app","opcode":"iadd","args":[{"id":208,"kind":"name","name":"x"},{"id":209,"kind":"name","name":"y"}]}},"typeAnnotation":{"id":207,"kind":"oper","args":[{"id":204,"kind":"int"},{"id":205,"kind":"int"}],"res":{"id":206,"kind":"int"}},"depth":0},"217":{"id":213,"name":"x","kind":"param","depth":1,"shadowing":false},"219":{"id":219,"kind":"def","name":"Pol","qualifier":"def","expr":{"id":218,"kind":"lambda","params":[{"id":213,"name":"x"}],"qualifier":"def","expr":{"id":217,"kind":"name","name":"x"}},"typeAnnotation":{"id":216,"kind":"oper","args":[{"id":214,"kind":"var","name":"a"}],"res":{"id":215,"kind":"var","name":"a"}},"depth":0},"223":{"kind":"var","name":"k","typeAnnotation":{"id":220,"kind":"int"},"id":221,"depth":0},"225":{"id":225,"kind":"def","name":"asgn","qualifier":"action","expr":{"id":224,"kind":"app","opcode":"assign","args":[{"id":223,"kind":"name","name":"k"},{"id":222,"kind":"int","value":3}]},"depth":0},"231":{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"232":{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"234":{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"235":{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"238":{"id":238,"kind":"def","name":"min","qualifier":"puredef","expr":{"id":237,"kind":"lambda","params":[{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"}},{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"}}],"qualifier":"puredef","expr":{"id":236,"kind":"app","opcode":"ite","args":[{"id":233,"kind":"app","opcode":"ilt","args":[{"id":231,"kind":"name","name":"x"},{"id":232,"kind":"name","name":"y"}]},{"id":234,"kind":"name","name":"x"},{"id":235,"kind":"name","name":"y"}]}},"typeAnnotation":{"kind":"oper","args":[{"id":226,"kind":"int"},{"id":228,"kind":"int"}],"res":{"id":230,"kind":"int"}},"depth":0},"242":{"id":242,"kind":"def","name":"test_and","qualifier":"val","expr":{"id":241,"kind":"app","opcode":"and","args":[{"id":239,"kind":"bool","value":false},{"id":240,"kind":"bool","value":true}]},"depth":0},"246":{"id":246,"kind":"def","name":"test_or","qualifier":"val","expr":{"id":245,"kind":"app","opcode":"or","args":[{"id":243,"kind":"bool","value":false},{"id":244,"kind":"bool","value":true}]},"depth":0},"250":{"id":250,"kind":"def","name":"test_implies","qualifier":"val","expr":{"id":249,"kind":"app","opcode":"implies","args":[{"id":247,"kind":"bool","value":false},{"id":248,"kind":"bool","value":true}]},"depth":0},"252":{"id":251,"name":"x","kind":"param","depth":1,"shadowing":false},"254":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"256":{"id":255,"name":"x","kind":"param","depth":1,"shadowing":false},"257":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"258":{"id":255,"name":"x","kind":"param","depth":1,"shadowing":false},"262":{"id":262,"kind":"def","name":"G","qualifier":"def","expr":{"id":261,"kind":"lambda","params":[{"id":255,"name":"x"}],"qualifier":"def","expr":{"id":260,"kind":"app","opcode":"and","args":[{"id":257,"kind":"app","opcode":"F","args":[{"id":256,"kind":"name","name":"x"}]},{"id":259,"kind":"app","opcode":"not","args":[{"id":258,"kind":"name","name":"x"}]}]}},"depth":0},"264":{"id":263,"name":"x","kind":"param","depth":1,"shadowing":false},"265":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"266":{"id":263,"name":"x","kind":"param","depth":1,"shadowing":false},"270":{"id":270,"kind":"def","name":"test_and_arg","qualifier":"def","expr":{"id":269,"kind":"lambda","params":[{"id":263,"name":"x"}],"qualifier":"def","expr":{"id":268,"kind":"app","opcode":"and","args":[{"id":265,"kind":"app","opcode":"F","args":[{"id":264,"kind":"name","name":"x"}]},{"id":267,"kind":"app","opcode":"not","args":[{"id":266,"kind":"name","name":"x"}]}]}},"depth":0},"272":{"id":271,"name":"x","kind":"param","depth":1,"shadowing":false},"273":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"274":{"id":271,"name":"x","kind":"param","depth":1,"shadowing":false},"278":{"id":278,"kind":"def","name":"test_or_arg","qualifier":"def","expr":{"id":277,"kind":"lambda","params":[{"id":271,"name":"x"}],"qualifier":"def","expr":{"id":276,"kind":"app","opcode":"or","args":[{"id":273,"kind":"app","opcode":"F","args":[{"id":272,"kind":"name","name":"x"}]},{"id":275,"kind":"app","opcode":"not","args":[{"id":274,"kind":"name","name":"x"}]}]}},"depth":0},"283":{"id":283,"kind":"def","name":"test_block_and","qualifier":"val","expr":{"id":282,"kind":"app","opcode":"and","args":[{"id":279,"kind":"bool","value":false},{"id":280,"kind":"bool","value":true},{"id":281,"kind":"bool","value":false}]},"depth":0},"288":{"id":288,"kind":"def","name":"test_action_and","qualifier":"action","expr":{"id":287,"kind":"app","opcode":"actionAll","args":[{"id":284,"kind":"bool","value":false},{"id":285,"kind":"bool","value":true},{"id":286,"kind":"bool","value":false}]},"depth":0},"293":{"id":293,"kind":"def","name":"test_block_or","qualifier":"val","expr":{"id":292,"kind":"app","opcode":"or","args":[{"id":289,"kind":"bool","value":false},{"id":290,"kind":"bool","value":true},{"id":291,"kind":"bool","value":false}]},"depth":0},"298":{"id":298,"kind":"def","name":"test_action_or","qualifier":"action","expr":{"id":297,"kind":"app","opcode":"actionAny","args":[{"id":294,"kind":"bool","value":false},{"id":295,"kind":"bool","value":true},{"id":296,"kind":"bool","value":false}]},"depth":0},"303":{"id":303,"kind":"def","name":"test_ite","qualifier":"val","expr":{"id":302,"kind":"app","opcode":"ite","args":[{"id":299,"kind":"bool","value":true},{"id":300,"kind":"int","value":1},{"id":301,"kind":"int","value":0}]},"depth":0},"306":{"id":304,"name":"x","kind":"param","depth":1,"shadowing":false},"309":{"id":305,"name":"y","kind":"param","depth":1,"shadowing":false},"312":{"id":305,"name":"y","kind":"param","depth":1,"shadowing":false},"317":{"id":317,"kind":"def","name":"test_ite2","qualifier":"def","expr":{"id":316,"kind":"lambda","params":[{"id":304,"name":"x"},{"id":305,"name":"y"}],"qualifier":"def","expr":{"id":315,"kind":"app","opcode":"ite","args":[{"id":308,"kind":"app","opcode":"ilt","args":[{"id":306,"kind":"name","name":"x"},{"id":307,"kind":"int","value":10}]},{"id":311,"kind":"app","opcode":"iadd","args":[{"id":309,"kind":"name","name":"y"},{"id":310,"kind":"int","value":5}]},{"id":314,"kind":"app","opcode":"imod","args":[{"id":312,"kind":"name","name":"y"},{"id":313,"kind":"int","value":5}]}]}},"depth":0},"322":{"kind":"var","name":"f1","typeAnnotation":{"id":320,"kind":"fun","arg":{"id":318,"kind":"str"},"res":{"id":319,"kind":"int"}},"id":321,"depth":0},"325":{"id":325,"kind":"def","name":"funapp","qualifier":"val","expr":{"id":324,"kind":"app","opcode":"get","args":[{"id":322,"kind":"name","name":"f1"},{"id":323,"kind":"str","value":"a"}]},"depth":0},"330":{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}},"depth":0},"333":{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}},"depth":0},"334":{"id":334,"kind":"def","name":"oper_app_normal","qualifier":"val","expr":{"id":333,"kind":"app","opcode":"MyOper","args":[{"id":331,"kind":"str","value":"a"},{"id":332,"kind":"int","value":42}]},"depth":0},"337":{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}},"depth":0},"338":{"id":338,"kind":"def","name":"oper_app_ufcs","qualifier":"val","expr":{"id":337,"kind":"app","opcode":"MyOper","args":[{"id":335,"kind":"str","value":"a"},{"id":336,"kind":"int","value":42}]},"depth":0},"342":{"id":342,"kind":"def","name":"oper_in","qualifier":"val","expr":{"id":341,"kind":"app","opcode":"in","args":[{"id":339,"kind":"int","value":1},{"id":340,"kind":"app","opcode":"Set","args":[]}]},"depth":0},"343":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"345":{"id":344,"name":"x","kind":"param","depth":1,"shadowing":false},"350":{"id":350,"kind":"def","name":"oper_app_dot1","qualifier":"val","expr":{"id":349,"kind":"app","opcode":"filter","args":[{"id":343,"kind":"name","name":"S"},{"id":348,"kind":"lambda","params":[{"id":344,"name":"x"}],"qualifier":"def","expr":{"id":347,"kind":"app","opcode":"igt","args":[{"id":345,"kind":"name","name":"x"},{"id":346,"kind":"int","value":10}]}}]},"depth":0},"351":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"352":{"kind":"const","name":"MySet","typeAnnotation":{"id":18,"kind":"set","elem":{"id":17,"kind":"int"}},"id":19,"depth":0},"354":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]},"depth":4},"355":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]},"depth":3},"356":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]},"depth":4},"357":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]},"depth":3},"362":{"id":359,"name":"quintTupledLambdaParam359","kind":"param","depth":1},"366":{"id":359,"name":"quintTupledLambdaParam359","kind":"param","depth":1},"370":{"id":370,"kind":"def","name":"tuple_sum","qualifier":"val","expr":{"id":369,"kind":"app","opcode":"map","args":[{"id":353,"kind":"app","opcode":"tuples","args":[{"id":351,"kind":"name","name":"S"},{"id":352,"kind":"name","name":"MySet"}]},{"id":368,"kind":"lambda","params":[{"id":359,"name":"quintTupledLambdaParam359"}],"qualifier":"def","expr":{"id":364,"kind":"let","opdef":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]}},"expr":{"id":360,"kind":"let","opdef":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]}},"expr":{"id":358,"kind":"app","opcode":"iadd","args":[{"id":356,"kind":"name","name":"s"},{"id":357,"kind":"name","name":"mys"}]}}}}]},"depth":0},"371":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"373":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]},"depth":2,"shadowing":false},"374":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]},"depth":2,"shadowing":false},"377":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]},"depth":2,"shadowing":false},"378":{"kind":"var","name":"k","typeAnnotation":{"id":220,"kind":"int"},"id":221,"depth":0},"382":{"id":382,"kind":"def","name":"oper_nondet","qualifier":"action","expr":{"id":381,"kind":"let","opdef":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]}},"expr":{"id":380,"kind":"app","opcode":"actionAll","args":[{"id":376,"kind":"app","opcode":"igt","args":[{"id":374,"kind":"name","name":"x"},{"id":375,"kind":"int","value":10}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"k"},{"id":377,"kind":"name","name":"x"}]}]}},"depth":0},"383":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"388":{"id":388,"kind":"def","name":"oper_app_dot4","qualifier":"val","expr":{"id":387,"kind":"app","opcode":"filter","args":[{"id":383,"kind":"name","name":"S"},{"id":386,"kind":"lambda","params":[{"id":384,"name":"_"}],"qualifier":"def","expr":{"id":385,"kind":"bool","value":true}}]},"depth":0},"389":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"391":{"id":390,"name":"x","kind":"param","depth":1,"shadowing":false},"396":{"id":396,"kind":"def","name":"f","qualifier":"val","expr":{"id":395,"kind":"app","opcode":"mapBy","args":[{"id":389,"kind":"name","name":"S"},{"id":394,"kind":"lambda","params":[{"id":390,"name":"x"}],"qualifier":"def","expr":{"id":393,"kind":"app","opcode":"iadd","args":[{"id":391,"kind":"name","name":"x"},{"id":392,"kind":"int","value":1}]}}]},"depth":0},"397":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"402":{"id":402,"kind":"def","name":"set_difference","qualifier":"val","expr":{"id":401,"kind":"app","opcode":"exclude","args":[{"id":397,"kind":"name","name":"S"},{"id":400,"kind":"app","opcode":"Set","args":[{"id":398,"kind":"int","value":3},{"id":399,"kind":"int","value":4}]}]},"depth":0},"407":{"id":407,"kind":"def","name":"one","qualifier":"val","expr":{"id":406,"kind":"app","opcode":"head","args":[{"id":405,"kind":"app","opcode":"List","args":[{"id":403,"kind":"int","value":1},{"id":404,"kind":"int","value":2}]}]},"depth":0},"412":{"id":412,"kind":"def","name":"test_tuple","qualifier":"val","expr":{"id":411,"kind":"app","opcode":"Tup","args":[{"id":408,"kind":"int","value":1},{"id":409,"kind":"int","value":2},{"id":410,"kind":"int","value":3}]},"depth":0},"417":{"id":417,"kind":"def","name":"test_tuple2","qualifier":"val","expr":{"id":416,"kind":"app","opcode":"Tup","args":[{"id":413,"kind":"int","value":1},{"id":414,"kind":"int","value":2},{"id":415,"kind":"int","value":3}]},"depth":0},"421":{"id":421,"kind":"def","name":"test_pair","qualifier":"val","expr":{"id":420,"kind":"app","opcode":"Tup","args":[{"id":418,"kind":"int","value":4},{"id":419,"kind":"int","value":5}]},"depth":0},"426":{"id":426,"kind":"def","name":"test_list","qualifier":"val","expr":{"id":425,"kind":"app","opcode":"List","args":[{"id":422,"kind":"int","value":1},{"id":423,"kind":"int","value":2},{"id":424,"kind":"int","value":3}]},"depth":0},"431":{"id":431,"kind":"def","name":"test_list2","qualifier":"val","expr":{"id":430,"kind":"app","opcode":"List","args":[{"id":427,"kind":"int","value":1},{"id":428,"kind":"int","value":2},{"id":429,"kind":"int","value":3}]},"depth":0},"438":{"id":438,"kind":"def","name":"test_list_nth","qualifier":"val","expr":{"id":437,"kind":"app","opcode":"nth","args":[{"id":435,"kind":"app","opcode":"List","args":[{"id":432,"kind":"int","value":2},{"id":433,"kind":"int","value":3},{"id":434,"kind":"int","value":4}]},{"id":436,"kind":"int","value":2}]},"depth":0},"444":{"id":444,"kind":"def","name":"test_record","qualifier":"val","expr":{"id":443,"kind":"app","opcode":"Rec","args":[{"id":440,"kind":"str","value":"name"},{"id":439,"kind":"str","value":"igor"},{"id":442,"kind":"str","value":"year"},{"id":441,"kind":"int","value":1981}]},"depth":0},"450":{"id":450,"kind":"def","name":"test_record2","qualifier":"val","expr":{"id":449,"kind":"app","opcode":"Rec","args":[{"id":445,"kind":"str","value":"name"},{"id":446,"kind":"str","value":"igor"},{"id":447,"kind":"str","value":"year"},{"id":448,"kind":"int","value":1981}]},"depth":0},"455":{"id":444,"kind":"def","name":"test_record","qualifier":"val","expr":{"id":443,"kind":"app","opcode":"Rec","args":[{"id":440,"kind":"str","value":"name"},{"id":439,"kind":"str","value":"igor"},{"id":442,"kind":"str","value":"year"},{"id":441,"kind":"int","value":1981}]},"depth":0},"458":{"id":458,"kind":"def","name":"test_record3","qualifier":"val","expr":{"id":457,"kind":"app","opcode":"with","args":[{"id":456,"kind":"app","opcode":"with","args":[{"id":455,"kind":"name","name":"test_record"},{"id":452,"kind":"str","value":"name"},{"id":451,"kind":"str","value":"quint"}]},{"id":454,"kind":"str","value":"year"},{"id":453,"kind":"int","value":2023}]},"depth":0},"463":{"id":463,"kind":"def","name":"test_set","qualifier":"val","expr":{"id":462,"kind":"app","opcode":"Set","args":[{"id":459,"kind":"int","value":1},{"id":460,"kind":"int","value":2},{"id":461,"kind":"int","value":3}]},"depth":0},"469":{"id":469,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":468,"kind":"app","opcode":"Rec","args":[{"id":465,"kind":"str","value":"a"},{"id":464,"kind":"int","value":1},{"id":467,"kind":"str","value":"b"},{"id":466,"kind":"str","value":"foo"}]},"depth":2},"470":{"id":469,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":468,"kind":"app","opcode":"Rec","args":[{"id":465,"kind":"str","value":"a"},{"id":464,"kind":"int","value":1},{"id":467,"kind":"str","value":"b"},{"id":466,"kind":"str","value":"foo"}]},"depth":2},"474":{"id":474,"kind":"def","name":"rec_field","qualifier":"val","expr":{"id":473,"kind":"let","opdef":{"id":469,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":468,"kind":"app","opcode":"Rec","args":[{"id":465,"kind":"str","value":"a"},{"id":464,"kind":"int","value":1},{"id":467,"kind":"str","value":"b"},{"id":466,"kind":"str","value":"foo"}]}},"expr":{"id":472,"kind":"app","opcode":"field","args":[{"id":470,"kind":"name","name":"my_rec"},{"id":471,"kind":"str","value":"a"}]}},"depth":0},"478":{"id":478,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":477,"kind":"app","opcode":"Tup","args":[{"id":475,"kind":"str","value":"a"},{"id":476,"kind":"int","value":3}]},"depth":2},"479":{"id":478,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":477,"kind":"app","opcode":"Tup","args":[{"id":475,"kind":"str","value":"a"},{"id":476,"kind":"int","value":3}]},"depth":2},"483":{"id":483,"kind":"def","name":"tup_elem","qualifier":"val","expr":{"id":482,"kind":"let","opdef":{"id":478,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":477,"kind":"app","opcode":"Tup","args":[{"id":475,"kind":"str","value":"a"},{"id":476,"kind":"int","value":3}]}},"expr":{"id":481,"kind":"app","opcode":"item","args":[{"id":479,"kind":"name","name":"my_tup"},{"id":480,"kind":"int","value":2}]}},"depth":0},"485":{"id":484,"name":"s","kind":"param","depth":1,"shadowing":false},"489":{"id":489,"kind":"def","name":"isEmpty","qualifier":"def","expr":{"id":488,"kind":"lambda","params":[{"id":484,"name":"s"}],"qualifier":"def","expr":{"id":487,"kind":"app","opcode":"eq","args":[{"id":485,"kind":"name","name":"s"},{"id":486,"kind":"app","opcode":"List","args":[]}]}},"depth":0},"493":{"id":493,"kind":"def","name":"in_2_empty","qualifier":"val","expr":{"id":492,"kind":"app","opcode":"in","args":[{"id":490,"kind":"int","value":2},{"id":491,"kind":"app","opcode":"Set","args":[]}]},"depth":0},"497":{"id":497,"kind":"def","name":"subseteq_empty","qualifier":"val","expr":{"id":496,"kind":"app","opcode":"subseteq","args":[{"id":494,"kind":"app","opcode":"Set","args":[]},{"id":495,"kind":"app","opcode":"Set","args":[]}]},"depth":0},"506":{"id":506,"kind":"def","name":"powersets","qualifier":"val","expr":{"id":505,"kind":"app","opcode":"in","args":[{"id":499,"kind":"app","opcode":"Set","args":[{"id":498,"kind":"int","value":1}]},{"id":504,"kind":"app","opcode":"powerset","args":[{"id":503,"kind":"app","opcode":"Set","args":[{"id":500,"kind":"int","value":1},{"id":501,"kind":"int","value":2},{"id":502,"kind":"int","value":3}]}]}]},"depth":0},"512":{"id":512,"kind":"def","name":"lists","qualifier":"val","expr":{"id":511,"kind":"app","opcode":"allListsUpTo","args":[{"id":509,"kind":"app","opcode":"Set","args":[{"id":507,"kind":"int","value":1},{"id":508,"kind":"int","value":2}]},{"id":510,"kind":"int","value":3}]},"depth":0},"513":{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},"517":{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},"527":{"id":525,"kind":"typedef","name":"INT_SET","type":{"id":524,"kind":"set","elem":{"id":523,"kind":"int"}},"depth":0},"529":{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},"530":{"kind":"const","name":"N","typeAnnotation":{"id":7,"kind":"int"},"id":8,"depth":0,"importedFrom":{"id":531,"kind":"instance","qualifiedName":"Inst1","protoName":"Proto","overrides":[[{"id":530,"name":"N"},{"id":529,"kind":"name","name":"N"}]],"identityOverride":false},"hidden":true,"namespaces":["Inst1","withConsts"]}},"errors":[]} \ No newline at end of file +{"stage":"parsing","warnings":[],"modules":[{"id":11,"name":"Proto","declarations":[{"kind":"var","name":"x","typeAnnotation":{"id":9,"kind":"int"},"id":10,"depth":0},{"kind":"const","name":"N","typeAnnotation":{"id":7,"kind":"int"},"id":8,"depth":0}]},{"id":3,"name":"M1","declarations":[{"id":2,"kind":"def","name":"foo","qualifier":"val","expr":{"id":1,"kind":"int","value":4}}]},{"id":6,"name":"M2","declarations":[{"id":5,"kind":"def","name":"bar","qualifier":"val","expr":{"id":4,"kind":"int","value":4}}]},{"id":527,"name":"withConsts","declarations":[{"id":103,"kind":"def","name":"sub_1_to_2","qualifier":"val","expr":{"id":102,"kind":"app","opcode":"isub","args":[{"id":100,"kind":"int","value":1},{"id":101,"kind":"int","value":2}]}},{"id":107,"kind":"def","name":"mul_2_to_3","qualifier":"val","expr":{"id":106,"kind":"app","opcode":"imul","args":[{"id":104,"kind":"int","value":2},{"id":105,"kind":"int","value":3}]}},{"id":111,"kind":"def","name":"div_2_to_3","qualifier":"val","expr":{"id":110,"kind":"app","opcode":"idiv","args":[{"id":108,"kind":"int","value":2},{"id":109,"kind":"int","value":3}]}},{"id":115,"kind":"def","name":"mod_2_to_3","qualifier":"val","expr":{"id":114,"kind":"app","opcode":"imod","args":[{"id":112,"kind":"int","value":2},{"id":113,"kind":"int","value":3}]}},{"id":119,"kind":"def","name":"pow_2_to_3","qualifier":"val","expr":{"id":118,"kind":"app","opcode":"ipow","args":[{"id":116,"kind":"int","value":2},{"id":117,"kind":"int","value":3}]}},{"id":122,"kind":"def","name":"uminus","qualifier":"val","expr":{"id":121,"kind":"app","opcode":"iuminus","args":[{"id":120,"kind":"int","value":100}]}},{"id":126,"kind":"def","name":"gt_2_to_3","qualifier":"val","expr":{"id":125,"kind":"app","opcode":"igt","args":[{"id":123,"kind":"int","value":2},{"id":124,"kind":"int","value":3}]}},{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},{"id":130,"kind":"def","name":"ge_2_to_3","qualifier":"val","expr":{"id":129,"kind":"app","opcode":"igte","args":[{"id":127,"kind":"int","value":2},{"id":128,"kind":"int","value":3}]}},{"id":134,"kind":"def","name":"lt_2_to_3","qualifier":"val","expr":{"id":133,"kind":"app","opcode":"ilt","args":[{"id":131,"kind":"int","value":2},{"id":132,"kind":"int","value":3}]}},{"id":138,"kind":"def","name":"le_2_to_3","qualifier":"val","expr":{"id":137,"kind":"app","opcode":"ilte","args":[{"id":135,"kind":"int","value":2},{"id":136,"kind":"int","value":3}]}},{"id":142,"kind":"def","name":"eqeq_2_to_3","qualifier":"val","expr":{"id":141,"kind":"app","opcode":"eq","args":[{"id":139,"kind":"int","value":2},{"id":140,"kind":"int","value":3}]}},{"id":146,"kind":"def","name":"ne_2_to_3","qualifier":"val","expr":{"id":145,"kind":"app","opcode":"neq","args":[{"id":143,"kind":"int","value":2},{"id":144,"kind":"int","value":3}]}},{"id":152,"kind":"def","name":"VeryTrue","qualifier":"val","expr":{"id":151,"kind":"app","opcode":"eq","args":[{"id":149,"kind":"app","opcode":"iadd","args":[{"id":147,"kind":"int","value":2},{"id":148,"kind":"int","value":2}]},{"id":150,"kind":"int","value":4}]}},{"id":156,"kind":"def","name":"nat_includes_one","qualifier":"val","expr":{"id":155,"kind":"app","opcode":"in","args":[{"id":153,"kind":"int","value":1},{"id":154,"kind":"name","name":"Nat"}]}},{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},{"id":168,"kind":"def","name":"withType","qualifier":"val","expr":{"id":167,"kind":"app","opcode":"Set","args":[{"id":165,"kind":"int","value":1},{"id":166,"kind":"int","value":2}]},"typeAnnotation":{"id":164,"kind":"set","elem":{"id":163,"kind":"int"}}},{"id":169,"kind":"typedef","name":"PROC","depth":0},{"kind":"var","name":"n","typeAnnotation":{"id":174,"kind":"int"},"id":175,"depth":0},{"id":177,"kind":"def","name":"magicNumber","qualifier":"pureval","expr":{"id":176,"kind":"int","value":42}},{"kind":"const","name":"MySet","typeAnnotation":{"id":18,"kind":"set","elem":{"id":17,"kind":"int"}},"id":19,"depth":0},{"kind":"const","name":"MySeq","typeAnnotation":{"id":21,"kind":"list","elem":{"id":20,"kind":"bool"}},"id":22,"depth":0},{"kind":"var","name":"k","typeAnnotation":{"id":220,"kind":"int"},"id":221,"depth":0},{"id":242,"kind":"def","name":"test_and","qualifier":"val","expr":{"id":241,"kind":"app","opcode":"and","args":[{"id":239,"kind":"bool","value":false},{"id":240,"kind":"bool","value":true}]}},{"id":246,"kind":"def","name":"test_or","qualifier":"val","expr":{"id":245,"kind":"app","opcode":"or","args":[{"id":243,"kind":"bool","value":false},{"id":244,"kind":"bool","value":true}]}},{"id":250,"kind":"def","name":"test_implies","qualifier":"val","expr":{"id":249,"kind":"app","opcode":"implies","args":[{"id":247,"kind":"bool","value":false},{"id":248,"kind":"bool","value":true}]}},{"kind":"const","name":"MyFun","typeAnnotation":{"id":25,"kind":"fun","arg":{"id":23,"kind":"int"},"res":{"id":24,"kind":"str"}},"id":26,"depth":0},{"id":283,"kind":"def","name":"test_block_and","qualifier":"val","expr":{"id":282,"kind":"app","opcode":"and","args":[{"id":279,"kind":"bool","value":false},{"id":280,"kind":"bool","value":true},{"id":281,"kind":"bool","value":false}]}},{"id":288,"kind":"def","name":"test_action_and","qualifier":"action","expr":{"id":287,"kind":"app","opcode":"actionAll","args":[{"id":284,"kind":"bool","value":false},{"id":285,"kind":"bool","value":true},{"id":286,"kind":"bool","value":false}]}},{"id":293,"kind":"def","name":"test_block_or","qualifier":"val","expr":{"id":292,"kind":"app","opcode":"or","args":[{"id":289,"kind":"bool","value":false},{"id":290,"kind":"bool","value":true},{"id":291,"kind":"bool","value":false}]}},{"id":298,"kind":"def","name":"test_action_or","qualifier":"action","expr":{"id":297,"kind":"app","opcode":"actionAny","args":[{"id":294,"kind":"bool","value":false},{"id":295,"kind":"bool","value":true},{"id":296,"kind":"bool","value":false}]}},{"id":303,"kind":"def","name":"test_ite","qualifier":"val","expr":{"id":302,"kind":"app","opcode":"ite","args":[{"id":299,"kind":"bool","value":true},{"id":300,"kind":"int","value":1},{"id":301,"kind":"int","value":0}]}},{"kind":"const","name":"MyFunFun","typeAnnotation":{"id":31,"kind":"fun","arg":{"id":29,"kind":"fun","arg":{"id":27,"kind":"int"},"res":{"id":28,"kind":"str"}},"res":{"id":30,"kind":"bool"}},"id":32,"depth":0},{"kind":"var","name":"f1","typeAnnotation":{"id":320,"kind":"fun","arg":{"id":318,"kind":"str"},"res":{"id":319,"kind":"int"}},"id":321,"depth":0},{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}}},{"id":342,"kind":"def","name":"oper_in","qualifier":"val","expr":{"id":341,"kind":"app","opcode":"in","args":[{"id":339,"kind":"int","value":1},{"id":340,"kind":"app","opcode":"Set","args":[]}]}},{"kind":"const","name":"MyOperator","typeAnnotation":{"id":36,"kind":"oper","args":[{"id":33,"kind":"int"},{"id":34,"kind":"str"}],"res":{"id":35,"kind":"bool"}},"id":37,"depth":0},{"id":407,"kind":"def","name":"one","qualifier":"val","expr":{"id":406,"kind":"app","opcode":"head","args":[{"id":405,"kind":"app","opcode":"List","args":[{"id":403,"kind":"int","value":1},{"id":404,"kind":"int","value":2}]}]}},{"id":412,"kind":"def","name":"test_tuple","qualifier":"val","expr":{"id":411,"kind":"tuple","elements":[{"id":408,"kind":"int","value":1},{"id":409,"kind":"int","value":2},{"id":410,"kind":"int","value":3}]}},{"id":416,"kind":"def","name":"test_pair","qualifier":"val","expr":{"id":415,"kind":"tuple","elements":[{"id":413,"kind":"int","value":4},{"id":414,"kind":"int","value":5}]}},{"kind":"const","name":"MyOperatorWithComma","typeAnnotation":{"id":41,"kind":"oper","args":[{"id":38,"kind":"int"},{"id":39,"kind":"str"}],"res":{"id":40,"kind":"bool"}},"id":42,"depth":0},{"id":421,"kind":"def","name":"test_list","qualifier":"val","expr":{"id":420,"kind":"app","opcode":"List","args":[{"id":417,"kind":"int","value":1},{"id":418,"kind":"int","value":2},{"id":419,"kind":"int","value":3}]}},{"id":426,"kind":"def","name":"test_list2","qualifier":"val","expr":{"id":425,"kind":"app","opcode":"List","args":[{"id":422,"kind":"int","value":1},{"id":423,"kind":"int","value":2},{"id":424,"kind":"int","value":3}]}},{"id":433,"kind":"def","name":"test_list_nth","qualifier":"val","expr":{"id":432,"kind":"app","opcode":"nth","args":[{"id":430,"kind":"app","opcode":"List","args":[{"id":427,"kind":"int","value":2},{"id":428,"kind":"int","value":3},{"id":429,"kind":"int","value":4}]},{"id":431,"kind":"int","value":2}]}},{"id":439,"kind":"def","name":"test_record","qualifier":"val","expr":{"id":438,"kind":"app","opcode":"Rec","args":[{"id":435,"kind":"str","value":"name"},{"id":434,"kind":"str","value":"igor"},{"id":437,"kind":"str","value":"year"},{"id":436,"kind":"int","value":1981}]}},{"id":445,"kind":"def","name":"test_record2","qualifier":"val","expr":{"id":444,"kind":"app","opcode":"Rec","args":[{"id":440,"kind":"str","value":"name"},{"id":441,"kind":"str","value":"igor"},{"id":442,"kind":"str","value":"year"},{"id":443,"kind":"int","value":1981}]}},{"id":458,"kind":"def","name":"test_set","qualifier":"val","expr":{"id":457,"kind":"app","opcode":"Set","args":[{"id":454,"kind":"int","value":1},{"id":455,"kind":"int","value":2},{"id":456,"kind":"int","value":3}]}},{"kind":"const","name":"MyTuple","typeAnnotation":{"id":46,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":43,"kind":"int"}},{"fieldName":"1","fieldType":{"id":44,"kind":"bool"}},{"fieldName":"2","fieldType":{"id":45,"kind":"str"}}],"other":{"kind":"empty"}}},"id":47,"depth":0},{"id":488,"kind":"def","name":"in_2_empty","qualifier":"val","expr":{"id":487,"kind":"app","opcode":"in","args":[{"id":485,"kind":"int","value":2},{"id":486,"kind":"app","opcode":"Set","args":[]}]}},{"id":492,"kind":"def","name":"subseteq_empty","qualifier":"val","expr":{"id":491,"kind":"app","opcode":"subseteq","args":[{"id":489,"kind":"app","opcode":"Set","args":[]},{"id":490,"kind":"app","opcode":"Set","args":[]}]}},{"id":501,"kind":"def","name":"powersets","qualifier":"val","expr":{"id":500,"kind":"app","opcode":"in","args":[{"id":494,"kind":"app","opcode":"Set","args":[{"id":493,"kind":"int","value":1}]},{"id":499,"kind":"app","opcode":"powerset","args":[{"id":498,"kind":"app","opcode":"Set","args":[{"id":495,"kind":"int","value":1},{"id":496,"kind":"int","value":2},{"id":497,"kind":"int","value":3}]}]}]}},{"id":507,"kind":"def","name":"lists","qualifier":"val","expr":{"id":506,"kind":"app","opcode":"allListsUpTo","args":[{"id":504,"kind":"app","opcode":"Set","args":[{"id":502,"kind":"int","value":1},{"id":503,"kind":"int","value":2}]},{"id":505,"kind":"int","value":3}]}},{"kind":"const","name":"MyTupleWithComma","typeAnnotation":{"id":51,"kind":"tup","fields":{"kind":"row","fields":[{"fieldName":"0","fieldType":{"id":48,"kind":"int"}},{"fieldName":"1","fieldType":{"id":49,"kind":"bool"}},{"fieldName":"2","fieldType":{"id":50,"kind":"str"}}],"other":{"kind":"empty"}}},"id":52,"depth":0},{"id":520,"kind":"typedef","name":"INT_SET","type":{"id":519,"kind":"set","elem":{"id":518,"kind":"int"}},"depth":0},{"id":521,"kind":"typedef","name":"UNINTERPRETED_TYPE","depth":0},{"kind":"const","name":"MyRecord","typeAnnotation":{"id":56,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"i","fieldType":{"id":53,"kind":"int"}},{"fieldName":"b","fieldType":{"id":54,"kind":"bool"}},{"fieldName":"s","fieldType":{"id":55,"kind":"str"}}],"other":{"kind":"empty"}}},"id":57,"depth":0},{"kind":"const","name":"MyRecordWithComma","typeAnnotation":{"id":61,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"i","fieldType":{"id":58,"kind":"int"}},{"fieldName":"b","fieldType":{"id":59,"kind":"bool"}},{"fieldName":"s","fieldType":{"id":60,"kind":"str"}}],"other":{"kind":"empty"}}},"id":62,"depth":0},{"id":64,"kind":"typedef","name":"some::namespace::MyType","type":{"id":63,"kind":"int"},"depth":0},{"id":70,"kind":"typedef","name":"MyUnionType","type":{"id":70,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"Circle","fieldType":{"id":65,"kind":"int"}},{"fieldName":"Rectangle","fieldType":{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}},{"fieldName":"Dog","fieldType":{"id":69,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},{"kind":"var","name":"i","typeAnnotation":{"id":92,"kind":"int"},"id":93,"depth":0},{"kind":"var","name":"j","typeAnnotation":{"id":94,"kind":"bool"},"id":95,"depth":0},{"id":99,"kind":"def","name":"add_1_to_2","qualifier":"val","expr":{"id":98,"kind":"app","opcode":"iadd","args":[{"id":96,"kind":"int","value":1},{"id":97,"kind":"int","value":2}]}},{"id":162,"kind":"def","name":"there_is_truth","qualifier":"val","expr":{"id":161,"kind":"app","opcode":"exists","args":[{"id":157,"kind":"name","name":"Bool"},{"id":160,"kind":"lambda","params":[{"id":158,"name":"x"}],"qualifier":"def","expr":{"id":159,"kind":"name","name":"x"}}]}},{"id":173,"kind":"def","name":"withUninterpretedType","qualifier":"val","expr":{"id":172,"kind":"app","opcode":"Set","args":[]},"typeAnnotation":{"id":171,"kind":"set","elem":{"id":170,"kind":"const","name":"PROC"}}},{"id":184,"kind":"def","name":"add","qualifier":"puredef","expr":{"id":183,"kind":"lambda","params":[{"id":178,"name":"x"},{"id":179,"name":"y"}],"qualifier":"puredef","expr":{"id":182,"kind":"app","opcode":"iadd","args":[{"id":180,"kind":"name","name":"x"},{"id":181,"kind":"name","name":"y"}]}}},{"id":190,"kind":"def","name":"ofN","qualifier":"def","expr":{"id":189,"kind":"lambda","params":[{"id":185,"name":"factor"}],"qualifier":"def","expr":{"id":188,"kind":"app","opcode":"imul","args":[{"id":186,"kind":"name","name":"factor"},{"id":187,"kind":"name","name":"n"}]}}},{"id":196,"kind":"def","name":"A","qualifier":"action","expr":{"id":195,"kind":"lambda","params":[{"id":191,"name":"x"}],"qualifier":"action","expr":{"id":194,"kind":"app","opcode":"assign","args":[{"id":193,"kind":"name","name":"n"},{"id":192,"kind":"name","name":"x"}]}}},{"id":201,"kind":"def","name":"B","qualifier":"puredef","expr":{"id":200,"kind":"lambda","params":[{"id":197,"name":"x"}],"qualifier":"puredef","expr":{"id":199,"kind":"app","opcode":"not","args":[{"id":198,"kind":"name","name":"x"}]}}},{"id":212,"kind":"def","name":"H","qualifier":"def","expr":{"id":211,"kind":"lambda","params":[{"id":202,"name":"x"},{"id":203,"name":"y"}],"qualifier":"def","expr":{"id":210,"kind":"app","opcode":"iadd","args":[{"id":208,"kind":"name","name":"x"},{"id":209,"kind":"name","name":"y"}]}},"typeAnnotation":{"id":207,"kind":"oper","args":[{"id":204,"kind":"int"},{"id":205,"kind":"int"}],"res":{"id":206,"kind":"int"}}},{"id":219,"kind":"def","name":"Pol","qualifier":"def","expr":{"id":218,"kind":"lambda","params":[{"id":213,"name":"x"}],"qualifier":"def","expr":{"id":217,"kind":"name","name":"x"}},"typeAnnotation":{"id":216,"kind":"oper","args":[{"id":214,"kind":"var","name":"a"}],"res":{"id":215,"kind":"var","name":"a"}}},{"id":225,"kind":"def","name":"asgn","qualifier":"action","expr":{"id":224,"kind":"app","opcode":"assign","args":[{"id":223,"kind":"name","name":"k"},{"id":222,"kind":"int","value":3}]}},{"id":238,"kind":"def","name":"min","qualifier":"puredef","expr":{"id":237,"kind":"lambda","params":[{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"}},{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"}}],"qualifier":"puredef","expr":{"id":236,"kind":"app","opcode":"ite","args":[{"id":233,"kind":"app","opcode":"ilt","args":[{"id":231,"kind":"name","name":"x"},{"id":232,"kind":"name","name":"y"}]},{"id":234,"kind":"name","name":"x"},{"id":235,"kind":"name","name":"y"}]}},"typeAnnotation":{"kind":"oper","args":[{"id":226,"kind":"int"},{"id":228,"kind":"int"}],"res":{"id":230,"kind":"int"}}},{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}}},{"id":317,"kind":"def","name":"test_ite2","qualifier":"def","expr":{"id":316,"kind":"lambda","params":[{"id":304,"name":"x"},{"id":305,"name":"y"}],"qualifier":"def","expr":{"id":315,"kind":"app","opcode":"ite","args":[{"id":308,"kind":"app","opcode":"ilt","args":[{"id":306,"kind":"name","name":"x"},{"id":307,"kind":"int","value":10}]},{"id":311,"kind":"app","opcode":"iadd","args":[{"id":309,"kind":"name","name":"y"},{"id":310,"kind":"int","value":5}]},{"id":314,"kind":"app","opcode":"imod","args":[{"id":312,"kind":"name","name":"y"},{"id":313,"kind":"int","value":5}]}]}}},{"id":325,"kind":"def","name":"funapp","qualifier":"val","expr":{"id":324,"kind":"app","opcode":"get","args":[{"id":322,"kind":"name","name":"f1"},{"id":323,"kind":"str","value":"a"}]}},{"id":334,"kind":"def","name":"oper_app_normal","qualifier":"val","expr":{"id":333,"kind":"app","opcode":"MyOper","args":[{"id":331,"kind":"str","value":"a"},{"id":332,"kind":"int","value":42}]}},{"id":338,"kind":"def","name":"oper_app_ufcs","qualifier":"val","expr":{"id":337,"kind":"app","opcode":"MyOper","args":[{"id":335,"kind":"str","value":"a"},{"id":336,"kind":"int","value":42}]}},{"id":350,"kind":"def","name":"oper_app_dot1","qualifier":"val","expr":{"id":349,"kind":"app","opcode":"filter","args":[{"id":343,"kind":"name","name":"S"},{"id":348,"kind":"lambda","params":[{"id":344,"name":"x"}],"qualifier":"def","expr":{"id":347,"kind":"app","opcode":"igt","args":[{"id":345,"kind":"name","name":"x"},{"id":346,"kind":"int","value":10}]}}]}},{"id":388,"kind":"def","name":"oper_app_dot4","qualifier":"val","expr":{"id":387,"kind":"app","opcode":"filter","args":[{"id":383,"kind":"name","name":"S"},{"id":386,"kind":"lambda","params":[{"id":384,"name":"_"}],"qualifier":"def","expr":{"id":385,"kind":"bool","value":true}}]}},{"id":396,"kind":"def","name":"f","qualifier":"val","expr":{"id":395,"kind":"app","opcode":"mapBy","args":[{"id":389,"kind":"name","name":"S"},{"id":394,"kind":"lambda","params":[{"id":390,"name":"x"}],"qualifier":"def","expr":{"id":393,"kind":"app","opcode":"iadd","args":[{"id":391,"kind":"name","name":"x"},{"id":392,"kind":"int","value":1}]}}]}},{"id":402,"kind":"def","name":"set_difference","qualifier":"val","expr":{"id":401,"kind":"app","opcode":"exclude","args":[{"id":397,"kind":"name","name":"S"},{"id":400,"kind":"app","opcode":"Set","args":[{"id":398,"kind":"int","value":3},{"id":399,"kind":"int","value":4}]}]}},{"id":453,"kind":"def","name":"test_record3","qualifier":"val","expr":{"id":452,"kind":"app","opcode":"with","args":[{"id":451,"kind":"app","opcode":"with","args":[{"id":450,"kind":"name","name":"test_record"},{"id":447,"kind":"str","value":"name"},{"id":446,"kind":"str","value":"quint"}]},{"id":449,"kind":"str","value":"year"},{"id":448,"kind":"int","value":2023}]}},{"id":469,"kind":"def","name":"rec_field","qualifier":"val","expr":{"id":468,"kind":"let","opdef":{"id":464,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":463,"kind":"app","opcode":"Rec","args":[{"id":460,"kind":"str","value":"a"},{"id":459,"kind":"int","value":1},{"id":462,"kind":"str","value":"b"},{"id":461,"kind":"str","value":"foo"}]}},"expr":{"id":467,"kind":"app","opcode":"field","args":[{"id":465,"kind":"name","name":"my_rec"},{"id":466,"kind":"str","value":"a"}]}}},{"id":478,"kind":"def","name":"tup_elem","qualifier":"val","expr":{"id":477,"kind":"let","opdef":{"id":473,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":472,"kind":"tuple","elements":[{"id":470,"kind":"str","value":"a"},{"id":471,"kind":"int","value":3}]}},"expr":{"id":476,"kind":"app","opcode":"item","args":[{"id":474,"kind":"name","name":"my_tup"},{"id":475,"kind":"int","value":2}]}}},{"id":484,"kind":"def","name":"isEmpty","qualifier":"def","expr":{"id":483,"kind":"lambda","params":[{"id":479,"name":"s"}],"qualifier":"def","expr":{"id":482,"kind":"app","opcode":"eq","args":[{"id":480,"kind":"name","name":"s"},{"id":481,"kind":"app","opcode":"List","args":[]}]}}},{"id":511,"kind":"assume","name":"positive","assumption":{"id":510,"kind":"app","opcode":"igt","args":[{"id":508,"kind":"name","name":"N"},{"id":509,"kind":"int","value":0}]},"depth":0},{"id":515,"kind":"assume","name":"_","assumption":{"id":514,"kind":"app","opcode":"neq","args":[{"id":512,"kind":"name","name":"N"},{"id":513,"kind":"int","value":0}]}},{"id":516,"kind":"import","defName":"foo","protoName":"M1"},{"id":517,"kind":"import","defName":"*","protoName":"M2"},{"kind":"var","name":"S1","typeAnnotation":{"id":522,"kind":"const","name":"INT_SET"},"id":523,"depth":0},{"id":526,"kind":"instance","qualifiedName":"Inst1","protoName":"Proto","overrides":[[{"id":525,"name":"N"},{"id":524,"kind":"name","name":"N"}]],"identityOverride":false},{"id":77,"kind":"def","name":"Circle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":65,"kind":"int"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":76,"kind":"lambda","params":[{"id":73,"name":"__CircleParam"}],"qualifier":"def","expr":{"id":75,"kind":"app","opcode":"variant","args":[{"id":72,"kind":"str","value":"Circle"},{"kind":"name","name":"__CircleParam","id":74}]}}},{"id":83,"kind":"def","name":"Rectangle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":82,"kind":"lambda","params":[{"id":79,"name":"__RectangleParam"}],"qualifier":"def","expr":{"id":81,"kind":"app","opcode":"variant","args":[{"id":78,"kind":"str","value":"Rectangle"},{"kind":"name","name":"__RectangleParam","id":80}]}}},{"id":89,"kind":"def","name":"Dog","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":69,"kind":"str"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":88,"kind":"lambda","params":[{"id":85,"name":"__DogParam"}],"qualifier":"def","expr":{"id":87,"kind":"app","opcode":"variant","args":[{"id":84,"kind":"str","value":"Dog"},{"kind":"name","name":"__DogParam","id":86}]}}},{"kind":"const","name":"MyUnion","typeAnnotation":{"id":90,"kind":"const","name":"MyUnionType"},"id":91,"depth":0},{"id":262,"kind":"def","name":"G","qualifier":"def","expr":{"id":261,"kind":"lambda","params":[{"id":255,"name":"x"}],"qualifier":"def","expr":{"id":260,"kind":"app","opcode":"and","args":[{"id":257,"kind":"app","opcode":"F","args":[{"id":256,"kind":"name","name":"x"}]},{"id":259,"kind":"app","opcode":"not","args":[{"id":258,"kind":"name","name":"x"}]}]}}},{"id":270,"kind":"def","name":"test_and_arg","qualifier":"def","expr":{"id":269,"kind":"lambda","params":[{"id":263,"name":"x"}],"qualifier":"def","expr":{"id":268,"kind":"app","opcode":"and","args":[{"id":265,"kind":"app","opcode":"F","args":[{"id":264,"kind":"name","name":"x"}]},{"id":267,"kind":"app","opcode":"not","args":[{"id":266,"kind":"name","name":"x"}]}]}}},{"id":278,"kind":"def","name":"test_or_arg","qualifier":"def","expr":{"id":277,"kind":"lambda","params":[{"id":271,"name":"x"}],"qualifier":"def","expr":{"id":276,"kind":"app","opcode":"or","args":[{"id":273,"kind":"app","opcode":"F","args":[{"id":272,"kind":"name","name":"x"}]},{"id":275,"kind":"app","opcode":"not","args":[{"id":274,"kind":"name","name":"x"}]}]}}},{"id":370,"kind":"def","name":"tuple_sum","qualifier":"val","expr":{"id":369,"kind":"app","opcode":"map","args":[{"id":353,"kind":"app","opcode":"tuples","args":[{"id":351,"kind":"name","name":"S"},{"id":352,"kind":"name","name":"MySet"}]},{"id":368,"kind":"lambda","params":[{"id":359,"name":"quintTupledLambdaParam359"}],"qualifier":"def","expr":{"id":364,"kind":"let","opdef":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]}},"expr":{"id":360,"kind":"let","opdef":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]}},"expr":{"id":358,"kind":"app","opcode":"iadd","args":[{"id":356,"kind":"name","name":"s"},{"id":357,"kind":"name","name":"mys"}]}}}}]}},{"id":382,"kind":"def","name":"oper_nondet","qualifier":"action","expr":{"id":381,"kind":"let","opdef":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]}},"expr":{"id":380,"kind":"app","opcode":"actionAll","args":[{"id":376,"kind":"app","opcode":"igt","args":[{"id":374,"kind":"name","name":"x"},{"id":375,"kind":"int","value":10}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"k"},{"id":377,"kind":"name","name":"x"}]}]}}}]}],"table":{"2":{"id":2,"kind":"def","name":"foo","qualifier":"val","expr":{"id":1,"kind":"int","value":4},"depth":0},"5":{"id":5,"kind":"def","name":"bar","qualifier":"val","expr":{"id":4,"kind":"int","value":4},"depth":0},"71":{"id":70,"kind":"typedef","name":"MyUnionType","type":{"id":70,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"Circle","fieldType":{"id":65,"kind":"int"}},{"fieldName":"Rectangle","fieldType":{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}},{"fieldName":"Dog","fieldType":{"id":69,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},"74":{"id":73,"name":"__CircleParam","kind":"param","depth":1},"77":{"id":77,"kind":"def","name":"Circle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":65,"kind":"int"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":76,"kind":"lambda","params":[{"id":73,"name":"__CircleParam"}],"qualifier":"def","expr":{"id":75,"kind":"app","opcode":"variant","args":[{"id":72,"kind":"str","value":"Circle"},{"kind":"name","name":"__CircleParam","id":74}]}},"depth":0},"80":{"id":79,"name":"__RectangleParam","kind":"param","depth":1},"83":{"id":83,"kind":"def","name":"Rectangle","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":82,"kind":"lambda","params":[{"id":79,"name":"__RectangleParam"}],"qualifier":"def","expr":{"id":81,"kind":"app","opcode":"variant","args":[{"id":78,"kind":"str","value":"Rectangle"},{"kind":"name","name":"__RectangleParam","id":80}]}},"depth":0},"86":{"id":85,"name":"__DogParam","kind":"param","depth":1},"89":{"id":89,"kind":"def","name":"Dog","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":69,"kind":"str"}],"res":{"id":71,"kind":"const","name":"MyUnionType"}},"expr":{"id":88,"kind":"lambda","params":[{"id":85,"name":"__DogParam"}],"qualifier":"def","expr":{"id":87,"kind":"app","opcode":"variant","args":[{"id":84,"kind":"str","value":"Dog"},{"kind":"name","name":"__DogParam","id":86}]}},"depth":0},"90":{"id":70,"kind":"typedef","name":"MyUnionType","type":{"id":70,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"Circle","fieldType":{"id":65,"kind":"int"}},{"fieldName":"Rectangle","fieldType":{"id":68,"kind":"rec","fields":{"kind":"row","fields":[{"fieldName":"width","fieldType":{"id":66,"kind":"int"}},{"fieldName":"height","fieldType":{"id":67,"kind":"int"}}],"other":{"kind":"empty"}}}},{"fieldName":"Dog","fieldType":{"id":69,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},"99":{"id":99,"kind":"def","name":"add_1_to_2","qualifier":"val","expr":{"id":98,"kind":"app","opcode":"iadd","args":[{"id":96,"kind":"int","value":1},{"id":97,"kind":"int","value":2}]},"depth":0},"103":{"id":103,"kind":"def","name":"sub_1_to_2","qualifier":"val","expr":{"id":102,"kind":"app","opcode":"isub","args":[{"id":100,"kind":"int","value":1},{"id":101,"kind":"int","value":2}]},"depth":0},"107":{"id":107,"kind":"def","name":"mul_2_to_3","qualifier":"val","expr":{"id":106,"kind":"app","opcode":"imul","args":[{"id":104,"kind":"int","value":2},{"id":105,"kind":"int","value":3}]},"depth":0},"111":{"id":111,"kind":"def","name":"div_2_to_3","qualifier":"val","expr":{"id":110,"kind":"app","opcode":"idiv","args":[{"id":108,"kind":"int","value":2},{"id":109,"kind":"int","value":3}]},"depth":0},"115":{"id":115,"kind":"def","name":"mod_2_to_3","qualifier":"val","expr":{"id":114,"kind":"app","opcode":"imod","args":[{"id":112,"kind":"int","value":2},{"id":113,"kind":"int","value":3}]},"depth":0},"119":{"id":119,"kind":"def","name":"pow_2_to_3","qualifier":"val","expr":{"id":118,"kind":"app","opcode":"ipow","args":[{"id":116,"kind":"int","value":2},{"id":117,"kind":"int","value":3}]},"depth":0},"122":{"id":122,"kind":"def","name":"uminus","qualifier":"val","expr":{"id":121,"kind":"app","opcode":"iuminus","args":[{"id":120,"kind":"int","value":100}]},"depth":0},"126":{"id":126,"kind":"def","name":"gt_2_to_3","qualifier":"val","expr":{"id":125,"kind":"app","opcode":"igt","args":[{"id":123,"kind":"int","value":2},{"id":124,"kind":"int","value":3}]},"depth":0},"130":{"id":130,"kind":"def","name":"ge_2_to_3","qualifier":"val","expr":{"id":129,"kind":"app","opcode":"igte","args":[{"id":127,"kind":"int","value":2},{"id":128,"kind":"int","value":3}]},"depth":0},"134":{"id":134,"kind":"def","name":"lt_2_to_3","qualifier":"val","expr":{"id":133,"kind":"app","opcode":"ilt","args":[{"id":131,"kind":"int","value":2},{"id":132,"kind":"int","value":3}]},"depth":0},"138":{"id":138,"kind":"def","name":"le_2_to_3","qualifier":"val","expr":{"id":137,"kind":"app","opcode":"ilte","args":[{"id":135,"kind":"int","value":2},{"id":136,"kind":"int","value":3}]},"depth":0},"142":{"id":142,"kind":"def","name":"eqeq_2_to_3","qualifier":"val","expr":{"id":141,"kind":"app","opcode":"eq","args":[{"id":139,"kind":"int","value":2},{"id":140,"kind":"int","value":3}]},"depth":0},"146":{"id":146,"kind":"def","name":"ne_2_to_3","qualifier":"val","expr":{"id":145,"kind":"app","opcode":"neq","args":[{"id":143,"kind":"int","value":2},{"id":144,"kind":"int","value":3}]},"depth":0},"152":{"id":152,"kind":"def","name":"VeryTrue","qualifier":"val","expr":{"id":151,"kind":"app","opcode":"eq","args":[{"id":149,"kind":"app","opcode":"iadd","args":[{"id":147,"kind":"int","value":2},{"id":148,"kind":"int","value":2}]},{"id":150,"kind":"int","value":4}]},"depth":0},"156":{"id":156,"kind":"def","name":"nat_includes_one","qualifier":"val","expr":{"id":155,"kind":"app","opcode":"in","args":[{"id":153,"kind":"int","value":1},{"id":154,"kind":"name","name":"Nat"}]},"depth":0},"159":{"id":158,"name":"x","kind":"param","depth":1},"162":{"id":162,"kind":"def","name":"there_is_truth","qualifier":"val","expr":{"id":161,"kind":"app","opcode":"exists","args":[{"id":157,"kind":"name","name":"Bool"},{"id":160,"kind":"lambda","params":[{"id":158,"name":"x"}],"qualifier":"def","expr":{"id":159,"kind":"name","name":"x"}}]},"depth":0},"168":{"id":168,"kind":"def","name":"withType","qualifier":"val","expr":{"id":167,"kind":"app","opcode":"Set","args":[{"id":165,"kind":"int","value":1},{"id":166,"kind":"int","value":2}]},"typeAnnotation":{"id":164,"kind":"set","elem":{"id":163,"kind":"int"}},"depth":0},"170":{"id":169,"kind":"typedef","name":"PROC","depth":0},"173":{"id":173,"kind":"def","name":"withUninterpretedType","qualifier":"val","expr":{"id":172,"kind":"app","opcode":"Set","args":[]},"typeAnnotation":{"id":171,"kind":"set","elem":{"id":170,"kind":"const","name":"PROC"}},"depth":0},"177":{"id":177,"kind":"def","name":"magicNumber","qualifier":"pureval","expr":{"id":176,"kind":"int","value":42},"depth":0},"180":{"id":178,"name":"x","kind":"param","depth":1,"shadowing":false},"181":{"id":179,"name":"y","kind":"param","depth":1},"184":{"id":184,"kind":"def","name":"add","qualifier":"puredef","expr":{"id":183,"kind":"lambda","params":[{"id":178,"name":"x"},{"id":179,"name":"y"}],"qualifier":"puredef","expr":{"id":182,"kind":"app","opcode":"iadd","args":[{"id":180,"kind":"name","name":"x"},{"id":181,"kind":"name","name":"y"}]}},"depth":0},"186":{"id":185,"name":"factor","kind":"param","depth":1},"187":{"kind":"var","name":"n","typeAnnotation":{"id":174,"kind":"int"},"id":175,"depth":0},"190":{"id":190,"kind":"def","name":"ofN","qualifier":"def","expr":{"id":189,"kind":"lambda","params":[{"id":185,"name":"factor"}],"qualifier":"def","expr":{"id":188,"kind":"app","opcode":"imul","args":[{"id":186,"kind":"name","name":"factor"},{"id":187,"kind":"name","name":"n"}]}},"depth":0},"192":{"id":191,"name":"x","kind":"param","depth":1,"shadowing":false},"193":{"kind":"var","name":"n","typeAnnotation":{"id":174,"kind":"int"},"id":175,"depth":0},"196":{"id":196,"kind":"def","name":"A","qualifier":"action","expr":{"id":195,"kind":"lambda","params":[{"id":191,"name":"x"}],"qualifier":"action","expr":{"id":194,"kind":"app","opcode":"assign","args":[{"id":193,"kind":"name","name":"n"},{"id":192,"kind":"name","name":"x"}]}},"depth":0},"198":{"id":197,"name":"x","kind":"param","depth":1,"shadowing":false},"201":{"id":201,"kind":"def","name":"B","qualifier":"puredef","expr":{"id":200,"kind":"lambda","params":[{"id":197,"name":"x"}],"qualifier":"puredef","expr":{"id":199,"kind":"app","opcode":"not","args":[{"id":198,"kind":"name","name":"x"}]}},"depth":0},"208":{"id":202,"name":"x","kind":"param","depth":1,"shadowing":false},"209":{"id":203,"name":"y","kind":"param","depth":1,"shadowing":false},"212":{"id":212,"kind":"def","name":"H","qualifier":"def","expr":{"id":211,"kind":"lambda","params":[{"id":202,"name":"x"},{"id":203,"name":"y"}],"qualifier":"def","expr":{"id":210,"kind":"app","opcode":"iadd","args":[{"id":208,"kind":"name","name":"x"},{"id":209,"kind":"name","name":"y"}]}},"typeAnnotation":{"id":207,"kind":"oper","args":[{"id":204,"kind":"int"},{"id":205,"kind":"int"}],"res":{"id":206,"kind":"int"}},"depth":0},"217":{"id":213,"name":"x","kind":"param","depth":1,"shadowing":false},"219":{"id":219,"kind":"def","name":"Pol","qualifier":"def","expr":{"id":218,"kind":"lambda","params":[{"id":213,"name":"x"}],"qualifier":"def","expr":{"id":217,"kind":"name","name":"x"}},"typeAnnotation":{"id":216,"kind":"oper","args":[{"id":214,"kind":"var","name":"a"}],"res":{"id":215,"kind":"var","name":"a"}},"depth":0},"223":{"kind":"var","name":"k","typeAnnotation":{"id":220,"kind":"int"},"id":221,"depth":0},"225":{"id":225,"kind":"def","name":"asgn","qualifier":"action","expr":{"id":224,"kind":"app","opcode":"assign","args":[{"id":223,"kind":"name","name":"k"},{"id":222,"kind":"int","value":3}]},"depth":0},"231":{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"232":{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"234":{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"235":{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"},"kind":"param","depth":1,"shadowing":false},"238":{"id":238,"kind":"def","name":"min","qualifier":"puredef","expr":{"id":237,"kind":"lambda","params":[{"id":227,"name":"x","typeAnnotation":{"id":226,"kind":"int"}},{"id":229,"name":"y","typeAnnotation":{"id":228,"kind":"int"}}],"qualifier":"puredef","expr":{"id":236,"kind":"app","opcode":"ite","args":[{"id":233,"kind":"app","opcode":"ilt","args":[{"id":231,"kind":"name","name":"x"},{"id":232,"kind":"name","name":"y"}]},{"id":234,"kind":"name","name":"x"},{"id":235,"kind":"name","name":"y"}]}},"typeAnnotation":{"kind":"oper","args":[{"id":226,"kind":"int"},{"id":228,"kind":"int"}],"res":{"id":230,"kind":"int"}},"depth":0},"242":{"id":242,"kind":"def","name":"test_and","qualifier":"val","expr":{"id":241,"kind":"app","opcode":"and","args":[{"id":239,"kind":"bool","value":false},{"id":240,"kind":"bool","value":true}]},"depth":0},"246":{"id":246,"kind":"def","name":"test_or","qualifier":"val","expr":{"id":245,"kind":"app","opcode":"or","args":[{"id":243,"kind":"bool","value":false},{"id":244,"kind":"bool","value":true}]},"depth":0},"250":{"id":250,"kind":"def","name":"test_implies","qualifier":"val","expr":{"id":249,"kind":"app","opcode":"implies","args":[{"id":247,"kind":"bool","value":false},{"id":248,"kind":"bool","value":true}]},"depth":0},"252":{"id":251,"name":"x","kind":"param","depth":1,"shadowing":false},"254":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"256":{"id":255,"name":"x","kind":"param","depth":1,"shadowing":false},"257":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"258":{"id":255,"name":"x","kind":"param","depth":1,"shadowing":false},"262":{"id":262,"kind":"def","name":"G","qualifier":"def","expr":{"id":261,"kind":"lambda","params":[{"id":255,"name":"x"}],"qualifier":"def","expr":{"id":260,"kind":"app","opcode":"and","args":[{"id":257,"kind":"app","opcode":"F","args":[{"id":256,"kind":"name","name":"x"}]},{"id":259,"kind":"app","opcode":"not","args":[{"id":258,"kind":"name","name":"x"}]}]}},"depth":0},"264":{"id":263,"name":"x","kind":"param","depth":1,"shadowing":false},"265":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"266":{"id":263,"name":"x","kind":"param","depth":1,"shadowing":false},"270":{"id":270,"kind":"def","name":"test_and_arg","qualifier":"def","expr":{"id":269,"kind":"lambda","params":[{"id":263,"name":"x"}],"qualifier":"def","expr":{"id":268,"kind":"app","opcode":"and","args":[{"id":265,"kind":"app","opcode":"F","args":[{"id":264,"kind":"name","name":"x"}]},{"id":267,"kind":"app","opcode":"not","args":[{"id":266,"kind":"name","name":"x"}]}]}},"depth":0},"272":{"id":271,"name":"x","kind":"param","depth":1,"shadowing":false},"273":{"id":254,"kind":"def","name":"F","qualifier":"def","expr":{"id":253,"kind":"lambda","params":[{"id":251,"name":"x"}],"qualifier":"def","expr":{"id":252,"kind":"name","name":"x"}},"depth":0},"274":{"id":271,"name":"x","kind":"param","depth":1,"shadowing":false},"278":{"id":278,"kind":"def","name":"test_or_arg","qualifier":"def","expr":{"id":277,"kind":"lambda","params":[{"id":271,"name":"x"}],"qualifier":"def","expr":{"id":276,"kind":"app","opcode":"or","args":[{"id":273,"kind":"app","opcode":"F","args":[{"id":272,"kind":"name","name":"x"}]},{"id":275,"kind":"app","opcode":"not","args":[{"id":274,"kind":"name","name":"x"}]}]}},"depth":0},"283":{"id":283,"kind":"def","name":"test_block_and","qualifier":"val","expr":{"id":282,"kind":"app","opcode":"and","args":[{"id":279,"kind":"bool","value":false},{"id":280,"kind":"bool","value":true},{"id":281,"kind":"bool","value":false}]},"depth":0},"288":{"id":288,"kind":"def","name":"test_action_and","qualifier":"action","expr":{"id":287,"kind":"app","opcode":"actionAll","args":[{"id":284,"kind":"bool","value":false},{"id":285,"kind":"bool","value":true},{"id":286,"kind":"bool","value":false}]},"depth":0},"293":{"id":293,"kind":"def","name":"test_block_or","qualifier":"val","expr":{"id":292,"kind":"app","opcode":"or","args":[{"id":289,"kind":"bool","value":false},{"id":290,"kind":"bool","value":true},{"id":291,"kind":"bool","value":false}]},"depth":0},"298":{"id":298,"kind":"def","name":"test_action_or","qualifier":"action","expr":{"id":297,"kind":"app","opcode":"actionAny","args":[{"id":294,"kind":"bool","value":false},{"id":295,"kind":"bool","value":true},{"id":296,"kind":"bool","value":false}]},"depth":0},"303":{"id":303,"kind":"def","name":"test_ite","qualifier":"val","expr":{"id":302,"kind":"app","opcode":"ite","args":[{"id":299,"kind":"bool","value":true},{"id":300,"kind":"int","value":1},{"id":301,"kind":"int","value":0}]},"depth":0},"306":{"id":304,"name":"x","kind":"param","depth":1,"shadowing":false},"309":{"id":305,"name":"y","kind":"param","depth":1,"shadowing":false},"312":{"id":305,"name":"y","kind":"param","depth":1,"shadowing":false},"317":{"id":317,"kind":"def","name":"test_ite2","qualifier":"def","expr":{"id":316,"kind":"lambda","params":[{"id":304,"name":"x"},{"id":305,"name":"y"}],"qualifier":"def","expr":{"id":315,"kind":"app","opcode":"ite","args":[{"id":308,"kind":"app","opcode":"ilt","args":[{"id":306,"kind":"name","name":"x"},{"id":307,"kind":"int","value":10}]},{"id":311,"kind":"app","opcode":"iadd","args":[{"id":309,"kind":"name","name":"y"},{"id":310,"kind":"int","value":5}]},{"id":314,"kind":"app","opcode":"imod","args":[{"id":312,"kind":"name","name":"y"},{"id":313,"kind":"int","value":5}]}]}},"depth":0},"322":{"kind":"var","name":"f1","typeAnnotation":{"id":320,"kind":"fun","arg":{"id":318,"kind":"str"},"res":{"id":319,"kind":"int"}},"id":321,"depth":0},"325":{"id":325,"kind":"def","name":"funapp","qualifier":"val","expr":{"id":324,"kind":"app","opcode":"get","args":[{"id":322,"kind":"name","name":"f1"},{"id":323,"kind":"str","value":"a"}]},"depth":0},"330":{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}},"depth":0},"333":{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}},"depth":0},"334":{"id":334,"kind":"def","name":"oper_app_normal","qualifier":"val","expr":{"id":333,"kind":"app","opcode":"MyOper","args":[{"id":331,"kind":"str","value":"a"},{"id":332,"kind":"int","value":42}]},"depth":0},"337":{"id":330,"kind":"def","name":"MyOper","qualifier":"def","expr":{"id":329,"kind":"lambda","params":[{"id":326,"name":"a"},{"id":327,"name":"b"}],"qualifier":"def","expr":{"id":328,"kind":"int","value":1}},"depth":0},"338":{"id":338,"kind":"def","name":"oper_app_ufcs","qualifier":"val","expr":{"id":337,"kind":"app","opcode":"MyOper","args":[{"id":335,"kind":"str","value":"a"},{"id":336,"kind":"int","value":42}]},"depth":0},"342":{"id":342,"kind":"def","name":"oper_in","qualifier":"val","expr":{"id":341,"kind":"app","opcode":"in","args":[{"id":339,"kind":"int","value":1},{"id":340,"kind":"app","opcode":"Set","args":[]}]},"depth":0},"343":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"345":{"id":344,"name":"x","kind":"param","depth":1,"shadowing":false},"350":{"id":350,"kind":"def","name":"oper_app_dot1","qualifier":"val","expr":{"id":349,"kind":"app","opcode":"filter","args":[{"id":343,"kind":"name","name":"S"},{"id":348,"kind":"lambda","params":[{"id":344,"name":"x"}],"qualifier":"def","expr":{"id":347,"kind":"app","opcode":"igt","args":[{"id":345,"kind":"name","name":"x"},{"id":346,"kind":"int","value":10}]}}]},"depth":0},"351":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"352":{"kind":"const","name":"MySet","typeAnnotation":{"id":18,"kind":"set","elem":{"id":17,"kind":"int"}},"id":19,"depth":0},"354":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]},"depth":4},"355":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]},"depth":3},"356":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]},"depth":4},"357":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]},"depth":3},"362":{"id":359,"name":"quintTupledLambdaParam359","kind":"param","depth":1},"366":{"id":359,"name":"quintTupledLambdaParam359","kind":"param","depth":1},"370":{"id":370,"kind":"def","name":"tuple_sum","qualifier":"val","expr":{"id":369,"kind":"app","opcode":"map","args":[{"id":353,"kind":"app","opcode":"tuples","args":[{"id":351,"kind":"name","name":"S"},{"id":352,"kind":"name","name":"MySet"}]},{"id":368,"kind":"lambda","params":[{"id":359,"name":"quintTupledLambdaParam359"}],"qualifier":"def","expr":{"id":364,"kind":"let","opdef":{"id":355,"kind":"def","name":"mys","qualifier":"pureval","expr":{"id":365,"kind":"app","opcode":"item","args":[{"id":366,"kind":"name","name":"quintTupledLambdaParam359"},{"id":367,"kind":"int","value":2}]}},"expr":{"id":360,"kind":"let","opdef":{"id":354,"kind":"def","name":"s","qualifier":"pureval","expr":{"id":361,"kind":"app","opcode":"item","args":[{"id":362,"kind":"name","name":"quintTupledLambdaParam359"},{"id":363,"kind":"int","value":1}]}},"expr":{"id":358,"kind":"app","opcode":"iadd","args":[{"id":356,"kind":"name","name":"s"},{"id":357,"kind":"name","name":"mys"}]}}}}]},"depth":0},"371":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"373":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]},"depth":2,"shadowing":false},"374":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]},"depth":2,"shadowing":false},"377":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]},"depth":2,"shadowing":false},"378":{"kind":"var","name":"k","typeAnnotation":{"id":220,"kind":"int"},"id":221,"depth":0},"382":{"id":382,"kind":"def","name":"oper_nondet","qualifier":"action","expr":{"id":381,"kind":"let","opdef":{"id":373,"kind":"def","name":"x","qualifier":"nondet","expr":{"id":372,"kind":"app","opcode":"oneOf","args":[{"id":371,"kind":"name","name":"S"}]}},"expr":{"id":380,"kind":"app","opcode":"actionAll","args":[{"id":376,"kind":"app","opcode":"igt","args":[{"id":374,"kind":"name","name":"x"},{"id":375,"kind":"int","value":10}]},{"id":379,"kind":"app","opcode":"assign","args":[{"id":378,"kind":"name","name":"k"},{"id":377,"kind":"name","name":"x"}]}]}},"depth":0},"383":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"388":{"id":388,"kind":"def","name":"oper_app_dot4","qualifier":"val","expr":{"id":387,"kind":"app","opcode":"filter","args":[{"id":383,"kind":"name","name":"S"},{"id":386,"kind":"lambda","params":[{"id":384,"name":"_"}],"qualifier":"def","expr":{"id":385,"kind":"bool","value":true}}]},"depth":0},"389":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"391":{"id":390,"name":"x","kind":"param","depth":1,"shadowing":false},"396":{"id":396,"kind":"def","name":"f","qualifier":"val","expr":{"id":395,"kind":"app","opcode":"mapBy","args":[{"id":389,"kind":"name","name":"S"},{"id":394,"kind":"lambda","params":[{"id":390,"name":"x"}],"qualifier":"def","expr":{"id":393,"kind":"app","opcode":"iadd","args":[{"id":391,"kind":"name","name":"x"},{"id":392,"kind":"int","value":1}]}}]},"depth":0},"397":{"kind":"const","name":"S","typeAnnotation":{"id":15,"kind":"set","elem":{"id":14,"kind":"int"}},"id":16,"depth":0},"402":{"id":402,"kind":"def","name":"set_difference","qualifier":"val","expr":{"id":401,"kind":"app","opcode":"exclude","args":[{"id":397,"kind":"name","name":"S"},{"id":400,"kind":"app","opcode":"Set","args":[{"id":398,"kind":"int","value":3},{"id":399,"kind":"int","value":4}]}]},"depth":0},"407":{"id":407,"kind":"def","name":"one","qualifier":"val","expr":{"id":406,"kind":"app","opcode":"head","args":[{"id":405,"kind":"app","opcode":"List","args":[{"id":403,"kind":"int","value":1},{"id":404,"kind":"int","value":2}]}]},"depth":0},"412":{"id":412,"kind":"def","name":"test_tuple","qualifier":"val","expr":{"id":411,"kind":"tuple","elements":[{"id":408,"kind":"int","value":1},{"id":409,"kind":"int","value":2},{"id":410,"kind":"int","value":3}]},"depth":0},"416":{"id":416,"kind":"def","name":"test_pair","qualifier":"val","expr":{"id":415,"kind":"tuple","elements":[{"id":413,"kind":"int","value":4},{"id":414,"kind":"int","value":5}]},"depth":0},"421":{"id":421,"kind":"def","name":"test_list","qualifier":"val","expr":{"id":420,"kind":"app","opcode":"List","args":[{"id":417,"kind":"int","value":1},{"id":418,"kind":"int","value":2},{"id":419,"kind":"int","value":3}]},"depth":0},"426":{"id":426,"kind":"def","name":"test_list2","qualifier":"val","expr":{"id":425,"kind":"app","opcode":"List","args":[{"id":422,"kind":"int","value":1},{"id":423,"kind":"int","value":2},{"id":424,"kind":"int","value":3}]},"depth":0},"433":{"id":433,"kind":"def","name":"test_list_nth","qualifier":"val","expr":{"id":432,"kind":"app","opcode":"nth","args":[{"id":430,"kind":"app","opcode":"List","args":[{"id":427,"kind":"int","value":2},{"id":428,"kind":"int","value":3},{"id":429,"kind":"int","value":4}]},{"id":431,"kind":"int","value":2}]},"depth":0},"439":{"id":439,"kind":"def","name":"test_record","qualifier":"val","expr":{"id":438,"kind":"app","opcode":"Rec","args":[{"id":435,"kind":"str","value":"name"},{"id":434,"kind":"str","value":"igor"},{"id":437,"kind":"str","value":"year"},{"id":436,"kind":"int","value":1981}]},"depth":0},"445":{"id":445,"kind":"def","name":"test_record2","qualifier":"val","expr":{"id":444,"kind":"app","opcode":"Rec","args":[{"id":440,"kind":"str","value":"name"},{"id":441,"kind":"str","value":"igor"},{"id":442,"kind":"str","value":"year"},{"id":443,"kind":"int","value":1981}]},"depth":0},"450":{"id":439,"kind":"def","name":"test_record","qualifier":"val","expr":{"id":438,"kind":"app","opcode":"Rec","args":[{"id":435,"kind":"str","value":"name"},{"id":434,"kind":"str","value":"igor"},{"id":437,"kind":"str","value":"year"},{"id":436,"kind":"int","value":1981}]},"depth":0},"453":{"id":453,"kind":"def","name":"test_record3","qualifier":"val","expr":{"id":452,"kind":"app","opcode":"with","args":[{"id":451,"kind":"app","opcode":"with","args":[{"id":450,"kind":"name","name":"test_record"},{"id":447,"kind":"str","value":"name"},{"id":446,"kind":"str","value":"quint"}]},{"id":449,"kind":"str","value":"year"},{"id":448,"kind":"int","value":2023}]},"depth":0},"458":{"id":458,"kind":"def","name":"test_set","qualifier":"val","expr":{"id":457,"kind":"app","opcode":"Set","args":[{"id":454,"kind":"int","value":1},{"id":455,"kind":"int","value":2},{"id":456,"kind":"int","value":3}]},"depth":0},"464":{"id":464,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":463,"kind":"app","opcode":"Rec","args":[{"id":460,"kind":"str","value":"a"},{"id":459,"kind":"int","value":1},{"id":462,"kind":"str","value":"b"},{"id":461,"kind":"str","value":"foo"}]},"depth":2},"465":{"id":464,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":463,"kind":"app","opcode":"Rec","args":[{"id":460,"kind":"str","value":"a"},{"id":459,"kind":"int","value":1},{"id":462,"kind":"str","value":"b"},{"id":461,"kind":"str","value":"foo"}]},"depth":2},"469":{"id":469,"kind":"def","name":"rec_field","qualifier":"val","expr":{"id":468,"kind":"let","opdef":{"id":464,"kind":"def","name":"my_rec","qualifier":"val","expr":{"id":463,"kind":"app","opcode":"Rec","args":[{"id":460,"kind":"str","value":"a"},{"id":459,"kind":"int","value":1},{"id":462,"kind":"str","value":"b"},{"id":461,"kind":"str","value":"foo"}]}},"expr":{"id":467,"kind":"app","opcode":"field","args":[{"id":465,"kind":"name","name":"my_rec"},{"id":466,"kind":"str","value":"a"}]}},"depth":0},"473":{"id":473,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":472,"kind":"tuple","elements":[{"id":470,"kind":"str","value":"a"},{"id":471,"kind":"int","value":3}]},"depth":2},"474":{"id":473,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":472,"kind":"tuple","elements":[{"id":470,"kind":"str","value":"a"},{"id":471,"kind":"int","value":3}]},"depth":2},"478":{"id":478,"kind":"def","name":"tup_elem","qualifier":"val","expr":{"id":477,"kind":"let","opdef":{"id":473,"kind":"def","name":"my_tup","qualifier":"val","expr":{"id":472,"kind":"tuple","elements":[{"id":470,"kind":"str","value":"a"},{"id":471,"kind":"int","value":3}]}},"expr":{"id":476,"kind":"app","opcode":"item","args":[{"id":474,"kind":"name","name":"my_tup"},{"id":475,"kind":"int","value":2}]}},"depth":0},"480":{"id":479,"name":"s","kind":"param","depth":1,"shadowing":false},"484":{"id":484,"kind":"def","name":"isEmpty","qualifier":"def","expr":{"id":483,"kind":"lambda","params":[{"id":479,"name":"s"}],"qualifier":"def","expr":{"id":482,"kind":"app","opcode":"eq","args":[{"id":480,"kind":"name","name":"s"},{"id":481,"kind":"app","opcode":"List","args":[]}]}},"depth":0},"488":{"id":488,"kind":"def","name":"in_2_empty","qualifier":"val","expr":{"id":487,"kind":"app","opcode":"in","args":[{"id":485,"kind":"int","value":2},{"id":486,"kind":"app","opcode":"Set","args":[]}]},"depth":0},"492":{"id":492,"kind":"def","name":"subseteq_empty","qualifier":"val","expr":{"id":491,"kind":"app","opcode":"subseteq","args":[{"id":489,"kind":"app","opcode":"Set","args":[]},{"id":490,"kind":"app","opcode":"Set","args":[]}]},"depth":0},"501":{"id":501,"kind":"def","name":"powersets","qualifier":"val","expr":{"id":500,"kind":"app","opcode":"in","args":[{"id":494,"kind":"app","opcode":"Set","args":[{"id":493,"kind":"int","value":1}]},{"id":499,"kind":"app","opcode":"powerset","args":[{"id":498,"kind":"app","opcode":"Set","args":[{"id":495,"kind":"int","value":1},{"id":496,"kind":"int","value":2},{"id":497,"kind":"int","value":3}]}]}]},"depth":0},"507":{"id":507,"kind":"def","name":"lists","qualifier":"val","expr":{"id":506,"kind":"app","opcode":"allListsUpTo","args":[{"id":504,"kind":"app","opcode":"Set","args":[{"id":502,"kind":"int","value":1},{"id":503,"kind":"int","value":2}]},{"id":505,"kind":"int","value":3}]},"depth":0},"508":{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},"512":{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},"522":{"id":520,"kind":"typedef","name":"INT_SET","type":{"id":519,"kind":"set","elem":{"id":518,"kind":"int"}},"depth":0},"524":{"kind":"const","name":"N","typeAnnotation":{"id":12,"kind":"int"},"id":13,"depth":0},"525":{"kind":"const","name":"N","typeAnnotation":{"id":7,"kind":"int"},"id":8,"depth":0,"importedFrom":{"id":526,"kind":"instance","qualifiedName":"Inst1","protoName":"Proto","overrides":[[{"id":525,"name":"N"},{"id":524,"kind":"name","name":"N"}]],"identityOverride":false},"hidden":true,"namespaces":["Inst1","withConsts"]}},"errors":[]} \ No newline at end of file diff --git a/quint/testFixture/SuperSpec.map.json b/quint/testFixture/SuperSpec.map.json index 2b1cd4b66..fef64db8b 100644 --- a/quint/testFixture/SuperSpec.map.json +++ b/quint/testFixture/SuperSpec.map.json @@ -1 +1 @@ -{"sourceIndex":{"0":"mocked_path/testFixture/SuperSpec.qnt"},"map":{"1":[0,{"line":1,"col":12,"index":24},{"line":1,"col":12,"index":24}],"2":[0,{"line":1,"col":2,"index":14},{"line":1,"col":12,"index":24}],"3":[0,{"line":0,"col":0,"index":0},{"line":2,"col":26,"index":26}],"4":[0,{"line":5,"col":12,"index":53},{"line":5,"col":12,"index":53}],"5":[0,{"line":5,"col":2,"index":43},{"line":5,"col":12,"index":53}],"6":[0,{"line":4,"col":0,"index":29},{"line":6,"col":26,"index":55}],"7":[0,{"line":9,"col":11,"index":84},{"line":9,"col":13,"index":86}],"8":[0,{"line":9,"col":2,"index":75},{"line":9,"col":13,"index":86}],"9":[0,{"line":10,"col":9,"index":97},{"line":10,"col":11,"index":99}],"10":[0,{"line":10,"col":2,"index":90},{"line":10,"col":11,"index":99}],"11":[0,{"line":8,"col":0,"index":58},{"line":11,"col":43,"index":101}],"12":[0,{"line":16,"col":11,"index":186},{"line":16,"col":13,"index":188}],"13":[0,{"line":16,"col":2,"index":177},{"line":16,"col":13,"index":188}],"14":[0,{"line":17,"col":15,"index":205},{"line":17,"col":17,"index":207}],"15":[0,{"line":17,"col":11,"index":201},{"line":17,"col":18,"index":208}],"16":[0,{"line":17,"col":2,"index":192},{"line":17,"col":18,"index":208}],"17":[0,{"line":18,"col":19,"index":229},{"line":18,"col":21,"index":231}],"18":[0,{"line":18,"col":15,"index":225},{"line":18,"col":22,"index":232}],"19":[0,{"line":18,"col":2,"index":212},{"line":18,"col":22,"index":232}],"20":[0,{"line":19,"col":20,"index":254},{"line":19,"col":23,"index":257}],"21":[0,{"line":19,"col":15,"index":249},{"line":19,"col":24,"index":258}],"22":[0,{"line":19,"col":2,"index":236},{"line":19,"col":24,"index":258}],"23":[0,{"line":20,"col":15,"index":275},{"line":20,"col":17,"index":277}],"24":[0,{"line":20,"col":22,"index":282},{"line":20,"col":24,"index":284}],"25":[0,{"line":20,"col":15,"index":275},{"line":20,"col":24,"index":284}],"26":[0,{"line":20,"col":2,"index":262},{"line":20,"col":24,"index":284}],"27":[0,{"line":21,"col":19,"index":305},{"line":21,"col":21,"index":307}],"28":[0,{"line":21,"col":26,"index":312},{"line":21,"col":28,"index":314}],"29":[0,{"line":21,"col":19,"index":305},{"line":21,"col":28,"index":314}],"30":[0,{"line":21,"col":34,"index":320},{"line":21,"col":37,"index":323}],"31":[0,{"line":21,"col":18,"index":304},{"line":21,"col":37,"index":323}],"32":[0,{"line":21,"col":2,"index":288},{"line":21,"col":37,"index":323}],"33":[0,{"line":22,"col":21,"index":346},{"line":22,"col":23,"index":348}],"34":[0,{"line":22,"col":26,"index":351},{"line":22,"col":28,"index":353}],"35":[0,{"line":22,"col":34,"index":359},{"line":22,"col":37,"index":362}],"36":[0,{"line":22,"col":20,"index":345},{"line":22,"col":37,"index":362}],"37":[0,{"line":22,"col":2,"index":327},{"line":22,"col":37,"index":362}],"38":[0,{"line":23,"col":30,"index":394},{"line":23,"col":32,"index":396}],"39":[0,{"line":23,"col":35,"index":399},{"line":23,"col":37,"index":401}],"40":[0,{"line":23,"col":45,"index":409},{"line":23,"col":48,"index":412}],"41":[0,{"line":23,"col":29,"index":393},{"line":23,"col":48,"index":412}],"42":[0,{"line":23,"col":2,"index":366},{"line":23,"col":48,"index":412}],"43":[0,{"line":24,"col":18,"index":432},{"line":24,"col":20,"index":434}],"44":[0,{"line":24,"col":23,"index":437},{"line":24,"col":26,"index":440}],"45":[0,{"line":24,"col":29,"index":443},{"line":24,"col":31,"index":445}],"46":[0,{"line":24,"col":17,"index":431},{"line":24,"col":32,"index":446}],"47":[0,{"line":24,"col":2,"index":416},{"line":24,"col":32,"index":446}],"48":[0,{"line":25,"col":27,"index":475},{"line":25,"col":29,"index":477}],"49":[0,{"line":25,"col":32,"index":480},{"line":25,"col":35,"index":483}],"50":[0,{"line":25,"col":38,"index":486},{"line":25,"col":40,"index":488}],"51":[0,{"line":25,"col":26,"index":474},{"line":25,"col":43,"index":491}],"52":[0,{"line":25,"col":2,"index":450},{"line":25,"col":43,"index":491}],"53":[0,{"line":28,"col":23,"index":580},{"line":28,"col":25,"index":582}],"54":[0,{"line":28,"col":31,"index":588},{"line":28,"col":34,"index":591}],"55":[0,{"line":28,"col":40,"index":597},{"line":28,"col":42,"index":599}],"56":[0,{"line":28,"col":18,"index":575},{"line":28,"col":44,"index":601}],"57":[0,{"line":28,"col":2,"index":559},{"line":28,"col":44,"index":601}],"58":[0,{"line":29,"col":32,"index":635},{"line":29,"col":34,"index":637}],"59":[0,{"line":29,"col":40,"index":643},{"line":29,"col":43,"index":646}],"60":[0,{"line":29,"col":49,"index":652},{"line":29,"col":51,"index":654}],"61":[0,{"line":29,"col":27,"index":630},{"line":29,"col":54,"index":657}],"62":[0,{"line":29,"col":2,"index":605},{"line":29,"col":54,"index":657}],"63":[0,{"line":32,"col":33,"index":731},{"line":32,"col":35,"index":733}],"64":[0,{"line":32,"col":2,"index":700},{"line":32,"col":35,"index":733}],"65":[0,{"line":36,"col":15,"index":822},{"line":36,"col":17,"index":824}],"66":[0,{"line":37,"col":26,"index":853},{"line":37,"col":28,"index":855}],"67":[0,{"line":37,"col":39,"index":866},{"line":37,"col":41,"index":868}],"68":[0,{"line":37,"col":18,"index":845},{"line":37,"col":43,"index":870}],"69":[0,{"line":38,"col":12,"index":885},{"line":38,"col":14,"index":887}],"70":[0,{"line":35,"col":2,"index":788},{"line":38,"col":102,"index":888}],"71":[0,{"line":35,"col":2,"index":788},{"line":38,"col":102,"index":888}],"72":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"73":[0,{"line":36,"col":15,"index":822},{"line":36,"col":17,"index":824}],"74":[0,{"line":36,"col":8,"index":815},{"line":36,"col":13,"index":820}],"75":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"76":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"77":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"78":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"79":[0,{"line":37,"col":18,"index":845},{"line":37,"col":43,"index":870}],"80":[0,{"line":37,"col":8,"index":835},{"line":37,"col":16,"index":843}],"81":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"82":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"83":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"84":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"85":[0,{"line":38,"col":12,"index":885},{"line":38,"col":14,"index":887}],"86":[0,{"line":38,"col":8,"index":881},{"line":38,"col":10,"index":883}],"87":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"88":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"89":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"90":[0,{"line":39,"col":17,"index":907},{"line":39,"col":27,"index":917}],"91":[0,{"line":39,"col":2,"index":892},{"line":39,"col":27,"index":917}],"92":[0,{"line":44,"col":9,"index":1031},{"line":44,"col":11,"index":1033}],"93":[0,{"line":44,"col":2,"index":1024},{"line":44,"col":11,"index":1033}],"94":[0,{"line":45,"col":9,"index":1044},{"line":45,"col":12,"index":1047}],"95":[0,{"line":45,"col":2,"index":1037},{"line":45,"col":12,"index":1047}],"96":[0,{"line":50,"col":19,"index":1216},{"line":50,"col":19,"index":1216}],"97":[0,{"line":50,"col":23,"index":1220},{"line":50,"col":23,"index":1220}],"98":[0,{"line":50,"col":19,"index":1216},{"line":50,"col":23,"index":1220}],"99":[0,{"line":50,"col":2,"index":1199},{"line":50,"col":23,"index":1220}],"100":[0,{"line":51,"col":19,"index":1241},{"line":51,"col":19,"index":1241}],"101":[0,{"line":51,"col":23,"index":1245},{"line":51,"col":23,"index":1245}],"102":[0,{"line":51,"col":19,"index":1241},{"line":51,"col":23,"index":1245}],"103":[0,{"line":51,"col":2,"index":1224},{"line":51,"col":23,"index":1245}],"104":[0,{"line":52,"col":19,"index":1266},{"line":52,"col":19,"index":1266}],"105":[0,{"line":52,"col":23,"index":1270},{"line":52,"col":23,"index":1270}],"106":[0,{"line":52,"col":19,"index":1266},{"line":52,"col":23,"index":1270}],"107":[0,{"line":52,"col":2,"index":1249},{"line":52,"col":23,"index":1270}],"108":[0,{"line":53,"col":19,"index":1291},{"line":53,"col":19,"index":1291}],"109":[0,{"line":53,"col":23,"index":1295},{"line":53,"col":23,"index":1295}],"110":[0,{"line":53,"col":19,"index":1291},{"line":53,"col":23,"index":1295}],"111":[0,{"line":53,"col":2,"index":1274},{"line":53,"col":23,"index":1295}],"112":[0,{"line":54,"col":19,"index":1316},{"line":54,"col":19,"index":1316}],"113":[0,{"line":54,"col":23,"index":1320},{"line":54,"col":23,"index":1320}],"114":[0,{"line":54,"col":19,"index":1316},{"line":54,"col":23,"index":1320}],"115":[0,{"line":54,"col":2,"index":1299},{"line":54,"col":23,"index":1320}],"116":[0,{"line":55,"col":19,"index":1341},{"line":55,"col":19,"index":1341}],"117":[0,{"line":55,"col":21,"index":1343},{"line":55,"col":21,"index":1343}],"118":[0,{"line":55,"col":19,"index":1341},{"line":55,"col":21,"index":1343}],"119":[0,{"line":55,"col":2,"index":1324},{"line":55,"col":21,"index":1343}],"120":[0,{"line":56,"col":16,"index":1361},{"line":56,"col":18,"index":1363}],"121":[0,{"line":56,"col":15,"index":1360},{"line":56,"col":18,"index":1363}],"122":[0,{"line":56,"col":2,"index":1347},{"line":56,"col":18,"index":1363}],"123":[0,{"line":57,"col":18,"index":1383},{"line":57,"col":18,"index":1383}],"124":[0,{"line":57,"col":22,"index":1387},{"line":57,"col":22,"index":1387}],"125":[0,{"line":57,"col":18,"index":1383},{"line":57,"col":22,"index":1387}],"126":[0,{"line":57,"col":2,"index":1367},{"line":57,"col":22,"index":1387}],"127":[0,{"line":58,"col":18,"index":1407},{"line":58,"col":18,"index":1407}],"128":[0,{"line":58,"col":23,"index":1412},{"line":58,"col":23,"index":1412}],"129":[0,{"line":58,"col":18,"index":1407},{"line":58,"col":23,"index":1412}],"130":[0,{"line":58,"col":2,"index":1391},{"line":58,"col":23,"index":1412}],"131":[0,{"line":59,"col":18,"index":1432},{"line":59,"col":18,"index":1432}],"132":[0,{"line":59,"col":22,"index":1436},{"line":59,"col":22,"index":1436}],"133":[0,{"line":59,"col":18,"index":1432},{"line":59,"col":22,"index":1436}],"134":[0,{"line":59,"col":2,"index":1416},{"line":59,"col":22,"index":1436}],"135":[0,{"line":60,"col":18,"index":1456},{"line":60,"col":18,"index":1456}],"136":[0,{"line":60,"col":23,"index":1461},{"line":60,"col":23,"index":1461}],"137":[0,{"line":60,"col":18,"index":1456},{"line":60,"col":23,"index":1461}],"138":[0,{"line":60,"col":2,"index":1440},{"line":60,"col":23,"index":1461}],"139":[0,{"line":61,"col":20,"index":1483},{"line":61,"col":20,"index":1483}],"140":[0,{"line":61,"col":25,"index":1488},{"line":61,"col":25,"index":1488}],"141":[0,{"line":61,"col":20,"index":1483},{"line":61,"col":25,"index":1488}],"142":[0,{"line":61,"col":2,"index":1465},{"line":61,"col":25,"index":1488}],"143":[0,{"line":62,"col":18,"index":1508},{"line":62,"col":18,"index":1508}],"144":[0,{"line":62,"col":23,"index":1513},{"line":62,"col":23,"index":1513}],"145":[0,{"line":62,"col":18,"index":1508},{"line":62,"col":23,"index":1513}],"146":[0,{"line":62,"col":2,"index":1492},{"line":62,"col":23,"index":1513}],"147":[0,{"line":64,"col":6,"index":1540},{"line":64,"col":6,"index":1540}],"148":[0,{"line":64,"col":10,"index":1544},{"line":64,"col":10,"index":1544}],"149":[0,{"line":64,"col":6,"index":1540},{"line":64,"col":10,"index":1544}],"150":[0,{"line":64,"col":15,"index":1549},{"line":64,"col":15,"index":1549}],"151":[0,{"line":64,"col":6,"index":1540},{"line":64,"col":15,"index":1549}],"152":[0,{"line":63,"col":2,"index":1517},{"line":65,"col":38,"index":1553}],"153":[0,{"line":66,"col":25,"index":1580},{"line":66,"col":25,"index":1580}],"154":[0,{"line":66,"col":30,"index":1585},{"line":66,"col":32,"index":1587}],"155":[0,{"line":66,"col":25,"index":1580},{"line":66,"col":33,"index":1588}],"156":[0,{"line":66,"col":2,"index":1557},{"line":66,"col":33,"index":1588}],"157":[0,{"line":67,"col":23,"index":1613},{"line":67,"col":26,"index":1616}],"158":[0,{"line":67,"col":35,"index":1625},{"line":67,"col":35,"index":1625}],"159":[0,{"line":67,"col":40,"index":1630},{"line":67,"col":40,"index":1630}],"160":[0,{"line":67,"col":35,"index":1625},{"line":67,"col":40,"index":1630}],"161":[0,{"line":67,"col":23,"index":1613},{"line":67,"col":41,"index":1631}],"162":[0,{"line":67,"col":2,"index":1592},{"line":67,"col":41,"index":1631}],"163":[0,{"line":70,"col":20,"index":1670},{"line":70,"col":22,"index":1672}],"164":[0,{"line":70,"col":16,"index":1666},{"line":70,"col":23,"index":1673}],"165":[0,{"line":70,"col":31,"index":1681},{"line":70,"col":31,"index":1681}],"166":[0,{"line":70,"col":34,"index":1684},{"line":70,"col":34,"index":1684}],"167":[0,{"line":70,"col":27,"index":1677},{"line":70,"col":35,"index":1685}],"168":[0,{"line":70,"col":2,"index":1652},{"line":70,"col":35,"index":1685}],"169":[0,{"line":72,"col":2,"index":1724},{"line":72,"col":10,"index":1732}],"170":[0,{"line":73,"col":33,"index":1767},{"line":73,"col":36,"index":1770}],"171":[0,{"line":73,"col":29,"index":1763},{"line":73,"col":37,"index":1771}],"172":[0,{"line":73,"col":41,"index":1775},{"line":73,"col":45,"index":1779}],"173":[0,{"line":73,"col":2,"index":1736},{"line":73,"col":45,"index":1779}],"174":[0,{"line":76,"col":9,"index":1817},{"line":76,"col":11,"index":1819}],"175":[0,{"line":76,"col":2,"index":1810},{"line":76,"col":11,"index":1819}],"176":[0,{"line":77,"col":25,"index":1846},{"line":77,"col":26,"index":1847}],"177":[0,{"line":77,"col":2,"index":1823},{"line":77,"col":26,"index":1847}],"178":[0,{"line":78,"col":15,"index":1864},{"line":78,"col":15,"index":1864}],"179":[0,{"line":78,"col":18,"index":1867},{"line":78,"col":18,"index":1867}],"180":[0,{"line":78,"col":23,"index":1872},{"line":78,"col":23,"index":1872}],"181":[0,{"line":78,"col":27,"index":1876},{"line":78,"col":27,"index":1876}],"182":[0,{"line":78,"col":23,"index":1872},{"line":78,"col":27,"index":1876}],"183":[0,{"line":78,"col":2,"index":1851},{"line":78,"col":27,"index":1876}],"184":[0,{"line":78,"col":2,"index":1851},{"line":78,"col":27,"index":1876}],"185":[0,{"line":79,"col":10,"index":1888},{"line":79,"col":15,"index":1893}],"186":[0,{"line":79,"col":20,"index":1898},{"line":79,"col":25,"index":1903}],"187":[0,{"line":79,"col":29,"index":1907},{"line":79,"col":29,"index":1907}],"188":[0,{"line":79,"col":20,"index":1898},{"line":79,"col":29,"index":1907}],"189":[0,{"line":79,"col":2,"index":1880},{"line":79,"col":29,"index":1907}],"190":[0,{"line":79,"col":2,"index":1880},{"line":79,"col":29,"index":1907}],"191":[0,{"line":80,"col":11,"index":1920},{"line":80,"col":11,"index":1920}],"192":[0,{"line":80,"col":21,"index":1930},{"line":80,"col":21,"index":1930}],"193":[0,{"line":80,"col":16,"index":1925},{"line":80,"col":21,"index":1930}],"194":[0,{"line":80,"col":16,"index":1925},{"line":80,"col":21,"index":1930}],"195":[0,{"line":80,"col":2,"index":1911},{"line":80,"col":21,"index":1930}],"196":[0,{"line":80,"col":2,"index":1911},{"line":80,"col":21,"index":1930}],"197":[0,{"line":81,"col":13,"index":1945},{"line":81,"col":13,"index":1945}],"198":[0,{"line":81,"col":22,"index":1954},{"line":81,"col":22,"index":1954}],"199":[0,{"line":81,"col":18,"index":1950},{"line":81,"col":23,"index":1955}],"200":[0,{"line":81,"col":2,"index":1934},{"line":81,"col":23,"index":1955}],"201":[0,{"line":81,"col":2,"index":1934},{"line":81,"col":23,"index":1955}],"202":[0,{"line":84,"col":8,"index":1987},{"line":84,"col":8,"index":1987}],"203":[0,{"line":84,"col":11,"index":1990},{"line":84,"col":11,"index":1990}],"204":[0,{"line":84,"col":16,"index":1995},{"line":84,"col":18,"index":1997}],"205":[0,{"line":84,"col":21,"index":2000},{"line":84,"col":23,"index":2002}],"206":[0,{"line":84,"col":29,"index":2008},{"line":84,"col":31,"index":2010}],"207":[0,{"line":84,"col":15,"index":1994},{"line":84,"col":31,"index":2010}],"208":[0,{"line":85,"col":6,"index":2022},{"line":85,"col":6,"index":2022}],"209":[0,{"line":85,"col":10,"index":2026},{"line":85,"col":10,"index":2026}],"210":[0,{"line":85,"col":6,"index":2022},{"line":85,"col":10,"index":2026}],"211":[0,{"line":84,"col":2,"index":1981},{"line":86,"col":51,"index":2030}],"212":[0,{"line":84,"col":2,"index":1981},{"line":86,"col":51,"index":2030}],"213":[0,{"line":88,"col":10,"index":2073},{"line":88,"col":10,"index":2073}],"214":[0,{"line":88,"col":15,"index":2078},{"line":88,"col":15,"index":2078}],"215":[0,{"line":88,"col":21,"index":2084},{"line":88,"col":21,"index":2084}],"216":[0,{"line":88,"col":14,"index":2077},{"line":88,"col":21,"index":2084}],"217":[0,{"line":89,"col":6,"index":2096},{"line":89,"col":6,"index":2096}],"218":[0,{"line":88,"col":2,"index":2065},{"line":90,"col":37,"index":2100}],"219":[0,{"line":88,"col":2,"index":2065},{"line":90,"col":37,"index":2100}],"220":[0,{"line":92,"col":9,"index":2112},{"line":92,"col":11,"index":2114}],"221":[0,{"line":92,"col":2,"index":2105},{"line":92,"col":11,"index":2114}],"222":[0,{"line":93,"col":21,"index":2137},{"line":93,"col":21,"index":2137}],"223":[0,{"line":93,"col":16,"index":2132},{"line":93,"col":21,"index":2137}],"224":[0,{"line":93,"col":16,"index":2132},{"line":93,"col":21,"index":2137}],"225":[0,{"line":93,"col":2,"index":2118},{"line":93,"col":21,"index":2137}],"226":[0,{"line":96,"col":18,"index":2192},{"line":96,"col":20,"index":2194}],"227":[0,{"line":96,"col":15,"index":2189},{"line":96,"col":20,"index":2194}],"228":[0,{"line":96,"col":26,"index":2200},{"line":96,"col":28,"index":2202}],"229":[0,{"line":96,"col":23,"index":2197},{"line":96,"col":28,"index":2202}],"230":[0,{"line":96,"col":32,"index":2206},{"line":96,"col":34,"index":2208}],"231":[0,{"line":97,"col":8,"index":2222},{"line":97,"col":8,"index":2222}],"232":[0,{"line":97,"col":12,"index":2226},{"line":97,"col":12,"index":2226}],"233":[0,{"line":97,"col":8,"index":2222},{"line":97,"col":12,"index":2226}],"234":[0,{"line":98,"col":4,"index":2233},{"line":98,"col":4,"index":2233}],"235":[0,{"line":99,"col":9,"index":2244},{"line":99,"col":9,"index":2244}],"236":[0,{"line":97,"col":4,"index":2218},{"line":99,"col":30,"index":2244}],"237":[0,{"line":96,"col":2,"index":2176},{"line":100,"col":74,"index":2248}],"238":[0,{"line":96,"col":2,"index":2176},{"line":100,"col":74,"index":2248}],"239":[0,{"line":104,"col":17,"index":2292},{"line":104,"col":21,"index":2296}],"240":[0,{"line":104,"col":27,"index":2302},{"line":104,"col":30,"index":2305}],"241":[0,{"line":104,"col":17,"index":2292},{"line":104,"col":30,"index":2305}],"242":[0,{"line":104,"col":2,"index":2277},{"line":104,"col":30,"index":2305}],"243":[0,{"line":105,"col":16,"index":2323},{"line":105,"col":20,"index":2327}],"244":[0,{"line":105,"col":25,"index":2332},{"line":105,"col":28,"index":2335}],"245":[0,{"line":105,"col":16,"index":2323},{"line":105,"col":28,"index":2335}],"246":[0,{"line":105,"col":2,"index":2309},{"line":105,"col":28,"index":2335}],"247":[0,{"line":106,"col":21,"index":2358},{"line":106,"col":25,"index":2362}],"248":[0,{"line":106,"col":35,"index":2372},{"line":106,"col":38,"index":2375}],"249":[0,{"line":106,"col":21,"index":2358},{"line":106,"col":38,"index":2375}],"250":[0,{"line":106,"col":2,"index":2339},{"line":106,"col":38,"index":2375}],"251":[0,{"line":107,"col":8,"index":2385},{"line":107,"col":8,"index":2385}],"252":[0,{"line":107,"col":13,"index":2390},{"line":107,"col":13,"index":2390}],"253":[0,{"line":107,"col":2,"index":2379},{"line":107,"col":13,"index":2390}],"254":[0,{"line":107,"col":2,"index":2379},{"line":107,"col":13,"index":2390}],"255":[0,{"line":108,"col":8,"index":2400},{"line":108,"col":8,"index":2400}],"256":[0,{"line":108,"col":15,"index":2407},{"line":108,"col":15,"index":2407}],"257":[0,{"line":108,"col":13,"index":2405},{"line":108,"col":16,"index":2408}],"258":[0,{"line":108,"col":26,"index":2418},{"line":108,"col":26,"index":2418}],"259":[0,{"line":108,"col":22,"index":2414},{"line":108,"col":27,"index":2419}],"260":[0,{"line":108,"col":13,"index":2405},{"line":108,"col":27,"index":2419}],"261":[0,{"line":108,"col":2,"index":2394},{"line":108,"col":27,"index":2419}],"262":[0,{"line":108,"col":2,"index":2394},{"line":108,"col":27,"index":2419}],"263":[0,{"line":109,"col":19,"index":2440},{"line":109,"col":19,"index":2440}],"264":[0,{"line":109,"col":26,"index":2447},{"line":109,"col":26,"index":2447}],"265":[0,{"line":109,"col":24,"index":2445},{"line":109,"col":27,"index":2448}],"266":[0,{"line":109,"col":37,"index":2458},{"line":109,"col":37,"index":2458}],"267":[0,{"line":109,"col":33,"index":2454},{"line":109,"col":38,"index":2459}],"268":[0,{"line":109,"col":24,"index":2445},{"line":109,"col":38,"index":2459}],"269":[0,{"line":109,"col":2,"index":2423},{"line":109,"col":38,"index":2459}],"270":[0,{"line":109,"col":2,"index":2423},{"line":109,"col":38,"index":2459}],"271":[0,{"line":110,"col":18,"index":2479},{"line":110,"col":18,"index":2479}],"272":[0,{"line":110,"col":25,"index":2486},{"line":110,"col":25,"index":2486}],"273":[0,{"line":110,"col":23,"index":2484},{"line":110,"col":26,"index":2487}],"274":[0,{"line":110,"col":35,"index":2496},{"line":110,"col":35,"index":2496}],"275":[0,{"line":110,"col":31,"index":2492},{"line":110,"col":36,"index":2497}],"276":[0,{"line":110,"col":23,"index":2484},{"line":110,"col":36,"index":2497}],"277":[0,{"line":110,"col":2,"index":2463},{"line":110,"col":36,"index":2497}],"278":[0,{"line":110,"col":2,"index":2463},{"line":110,"col":36,"index":2497}],"279":[0,{"line":113,"col":6,"index":2535},{"line":113,"col":10,"index":2539}],"280":[0,{"line":114,"col":6,"index":2548},{"line":114,"col":9,"index":2551}],"281":[0,{"line":115,"col":6,"index":2560},{"line":115,"col":10,"index":2564}],"282":[0,{"line":112,"col":23,"index":2523},{"line":116,"col":68,"index":2568}],"283":[0,{"line":112,"col":2,"index":2502},{"line":116,"col":68,"index":2568}],"284":[0,{"line":119,"col":6,"index":2610},{"line":119,"col":10,"index":2614}],"285":[0,{"line":120,"col":6,"index":2623},{"line":120,"col":9,"index":2626}],"286":[0,{"line":121,"col":6,"index":2635},{"line":121,"col":10,"index":2639}],"287":[0,{"line":118,"col":27,"index":2598},{"line":122,"col":72,"index":2643}],"288":[0,{"line":118,"col":2,"index":2573},{"line":122,"col":72,"index":2643}],"289":[0,{"line":125,"col":6,"index":2679},{"line":125,"col":10,"index":2683}],"290":[0,{"line":126,"col":6,"index":2692},{"line":126,"col":9,"index":2695}],"291":[0,{"line":127,"col":6,"index":2704},{"line":127,"col":10,"index":2708}],"292":[0,{"line":124,"col":22,"index":2668},{"line":128,"col":66,"index":2712}],"293":[0,{"line":124,"col":2,"index":2648},{"line":128,"col":66,"index":2712}],"294":[0,{"line":131,"col":6,"index":2753},{"line":131,"col":10,"index":2757}],"295":[0,{"line":132,"col":6,"index":2766},{"line":132,"col":9,"index":2769}],"296":[0,{"line":133,"col":6,"index":2778},{"line":133,"col":10,"index":2782}],"297":[0,{"line":130,"col":26,"index":2741},{"line":134,"col":71,"index":2786}],"298":[0,{"line":130,"col":2,"index":2717},{"line":134,"col":71,"index":2786}],"299":[0,{"line":136,"col":21,"index":2810},{"line":136,"col":24,"index":2813}],"300":[0,{"line":136,"col":27,"index":2816},{"line":136,"col":27,"index":2816}],"301":[0,{"line":136,"col":34,"index":2823},{"line":136,"col":34,"index":2823}],"302":[0,{"line":136,"col":17,"index":2806},{"line":136,"col":34,"index":2823}],"303":[0,{"line":136,"col":2,"index":2791},{"line":136,"col":34,"index":2823}],"304":[0,{"line":137,"col":16,"index":2841},{"line":137,"col":16,"index":2841}],"305":[0,{"line":137,"col":19,"index":2844},{"line":137,"col":19,"index":2844}],"306":[0,{"line":137,"col":28,"index":2853},{"line":137,"col":28,"index":2853}],"307":[0,{"line":137,"col":32,"index":2857},{"line":137,"col":33,"index":2858}],"308":[0,{"line":137,"col":28,"index":2853},{"line":137,"col":33,"index":2858}],"309":[0,{"line":137,"col":36,"index":2861},{"line":137,"col":36,"index":2861}],"310":[0,{"line":137,"col":40,"index":2865},{"line":137,"col":40,"index":2865}],"311":[0,{"line":137,"col":36,"index":2861},{"line":137,"col":40,"index":2865}],"312":[0,{"line":137,"col":47,"index":2872},{"line":137,"col":47,"index":2872}],"313":[0,{"line":137,"col":51,"index":2876},{"line":137,"col":51,"index":2876}],"314":[0,{"line":137,"col":47,"index":2872},{"line":137,"col":51,"index":2876}],"315":[0,{"line":137,"col":24,"index":2849},{"line":137,"col":51,"index":2876}],"316":[0,{"line":137,"col":2,"index":2827},{"line":137,"col":51,"index":2876}],"317":[0,{"line":137,"col":2,"index":2827},{"line":137,"col":51,"index":2876}],"318":[0,{"line":140,"col":10,"index":2915},{"line":140,"col":12,"index":2917}],"319":[0,{"line":140,"col":17,"index":2922},{"line":140,"col":19,"index":2924}],"320":[0,{"line":140,"col":10,"index":2915},{"line":140,"col":19,"index":2924}],"321":[0,{"line":140,"col":2,"index":2907},{"line":140,"col":19,"index":2924}],"322":[0,{"line":141,"col":15,"index":2941},{"line":141,"col":16,"index":2942}],"323":[0,{"line":141,"col":22,"index":2948},{"line":141,"col":24,"index":2950}],"324":[0,{"line":141,"col":15,"index":2941},{"line":141,"col":25,"index":2951}],"325":[0,{"line":141,"col":2,"index":2928},{"line":141,"col":25,"index":2951}],"326":[0,{"line":144,"col":13,"index":3015},{"line":144,"col":13,"index":3015}],"327":[0,{"line":144,"col":16,"index":3018},{"line":144,"col":16,"index":3018}],"328":[0,{"line":144,"col":21,"index":3023},{"line":144,"col":21,"index":3023}],"329":[0,{"line":144,"col":2,"index":3004},{"line":144,"col":21,"index":3023}],"330":[0,{"line":144,"col":2,"index":3004},{"line":144,"col":21,"index":3023}],"331":[0,{"line":145,"col":31,"index":3056},{"line":145,"col":33,"index":3058}],"332":[0,{"line":145,"col":36,"index":3061},{"line":145,"col":37,"index":3062}],"333":[0,{"line":145,"col":24,"index":3049},{"line":145,"col":38,"index":3063}],"334":[0,{"line":145,"col":2,"index":3027},{"line":145,"col":38,"index":3063}],"335":[0,{"line":146,"col":22,"index":3087},{"line":146,"col":24,"index":3089}],"336":[0,{"line":146,"col":33,"index":3098},{"line":146,"col":34,"index":3099}],"337":[0,{"line":146,"col":22,"index":3087},{"line":146,"col":35,"index":3100}],"338":[0,{"line":146,"col":2,"index":3067},{"line":146,"col":35,"index":3100}],"339":[0,{"line":148,"col":19,"index":3178},{"line":148,"col":19,"index":3178}],"340":[0,{"line":148,"col":22,"index":3181},{"line":148,"col":26,"index":3185}],"341":[0,{"line":148,"col":16,"index":3175},{"line":148,"col":27,"index":3186}],"342":[0,{"line":148,"col":2,"index":3161},{"line":148,"col":27,"index":3186}],"343":[0,{"line":153,"col":22,"index":3355},{"line":153,"col":22,"index":3355}],"344":[0,{"line":153,"col":31,"index":3364},{"line":153,"col":31,"index":3364}],"345":[0,{"line":153,"col":36,"index":3369},{"line":153,"col":36,"index":3369}],"346":[0,{"line":153,"col":40,"index":3373},{"line":153,"col":41,"index":3374}],"347":[0,{"line":153,"col":36,"index":3369},{"line":153,"col":41,"index":3374}],"348":[0,{"line":153,"col":31,"index":3364},{"line":153,"col":41,"index":3374}],"349":[0,{"line":153,"col":22,"index":3355},{"line":153,"col":42,"index":3375}],"350":[0,{"line":153,"col":2,"index":3335},{"line":153,"col":42,"index":3375}],"351":[0,{"line":155,"col":25,"index":3432},{"line":155,"col":25,"index":3432}],"352":[0,{"line":155,"col":28,"index":3435},{"line":155,"col":32,"index":3439}],"353":[0,{"line":155,"col":18,"index":3425},{"line":155,"col":33,"index":3440}],"354":[0,{"line":155,"col":42,"index":3449},{"line":155,"col":42,"index":3449}],"355":[0,{"line":155,"col":45,"index":3452},{"line":155,"col":47,"index":3454}],"356":[0,{"line":155,"col":54,"index":3461},{"line":155,"col":54,"index":3461}],"357":[0,{"line":155,"col":58,"index":3465},{"line":155,"col":60,"index":3467}],"358":[0,{"line":155,"col":54,"index":3461},{"line":155,"col":60,"index":3467}],"359":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"360":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"361":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"362":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"363":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"364":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"365":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"366":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"367":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"368":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"369":[0,{"line":155,"col":18,"index":3425},{"line":155,"col":62,"index":3469}],"370":[0,{"line":155,"col":2,"index":3409},{"line":155,"col":62,"index":3469}],"371":[0,{"line":158,"col":21,"index":3534},{"line":158,"col":21,"index":3534}],"372":[0,{"line":158,"col":15,"index":3528},{"line":158,"col":22,"index":3535}],"373":[0,{"line":158,"col":4,"index":3517},{"line":158,"col":22,"index":3535}],"374":[0,{"line":160,"col":6,"index":3553},{"line":160,"col":6,"index":3553}],"375":[0,{"line":160,"col":10,"index":3557},{"line":160,"col":11,"index":3558}],"376":[0,{"line":160,"col":6,"index":3553},{"line":160,"col":11,"index":3558}],"377":[0,{"line":161,"col":11,"index":3572},{"line":161,"col":11,"index":3572}],"378":[0,{"line":161,"col":6,"index":3567},{"line":161,"col":11,"index":3572}],"379":[0,{"line":161,"col":6,"index":3567},{"line":161,"col":11,"index":3572}],"380":[0,{"line":159,"col":4,"index":3541},{"line":162,"col":41,"index":3578}],"381":[0,{"line":158,"col":4,"index":3517},{"line":162,"col":65,"index":3578}],"382":[0,{"line":157,"col":2,"index":3490},{"line":163,"col":94,"index":3582}],"383":[0,{"line":165,"col":22,"index":3621},{"line":165,"col":22,"index":3621}],"384":[0,{"line":165,"col":31,"index":3630},{"line":165,"col":31,"index":3630}],"385":[0,{"line":165,"col":36,"index":3635},{"line":165,"col":39,"index":3638}],"386":[0,{"line":165,"col":31,"index":3630},{"line":165,"col":39,"index":3638}],"387":[0,{"line":165,"col":22,"index":3621},{"line":165,"col":40,"index":3639}],"388":[0,{"line":165,"col":2,"index":3601},{"line":165,"col":40,"index":3639}],"389":[0,{"line":167,"col":10,"index":3652},{"line":167,"col":10,"index":3652}],"390":[0,{"line":167,"col":18,"index":3660},{"line":167,"col":18,"index":3660}],"391":[0,{"line":167,"col":23,"index":3665},{"line":167,"col":23,"index":3665}],"392":[0,{"line":167,"col":27,"index":3669},{"line":167,"col":27,"index":3669}],"393":[0,{"line":167,"col":23,"index":3665},{"line":167,"col":27,"index":3669}],"394":[0,{"line":167,"col":18,"index":3660},{"line":167,"col":27,"index":3669}],"395":[0,{"line":167,"col":10,"index":3652},{"line":167,"col":28,"index":3670}],"396":[0,{"line":167,"col":2,"index":3644},{"line":167,"col":28,"index":3670}],"397":[0,{"line":169,"col":23,"index":3696},{"line":169,"col":23,"index":3696}],"398":[0,{"line":169,"col":37,"index":3710},{"line":169,"col":37,"index":3710}],"399":[0,{"line":169,"col":40,"index":3713},{"line":169,"col":40,"index":3713}],"400":[0,{"line":169,"col":33,"index":3706},{"line":169,"col":41,"index":3714}],"401":[0,{"line":169,"col":23,"index":3696},{"line":169,"col":42,"index":3715}],"402":[0,{"line":169,"col":2,"index":3675},{"line":169,"col":42,"index":3715}],"403":[0,{"line":172,"col":17,"index":3774},{"line":172,"col":17,"index":3774}],"404":[0,{"line":172,"col":20,"index":3777},{"line":172,"col":20,"index":3777}],"405":[0,{"line":172,"col":12,"index":3769},{"line":172,"col":21,"index":3778}],"406":[0,{"line":172,"col":12,"index":3769},{"line":172,"col":28,"index":3785}],"407":[0,{"line":172,"col":2,"index":3759},{"line":172,"col":28,"index":3785}],"408":[0,{"line":175,"col":20,"index":3829},{"line":175,"col":20,"index":3829}],"409":[0,{"line":175,"col":23,"index":3832},{"line":175,"col":23,"index":3832}],"410":[0,{"line":175,"col":26,"index":3835},{"line":175,"col":26,"index":3835}],"411":[0,{"line":175,"col":19,"index":3828},{"line":175,"col":27,"index":3836}],"412":[0,{"line":175,"col":2,"index":3811},{"line":175,"col":27,"index":3836}],"413":[0,{"line":176,"col":24,"index":3862},{"line":176,"col":24,"index":3862}],"414":[0,{"line":176,"col":27,"index":3865},{"line":176,"col":27,"index":3865}],"415":[0,{"line":176,"col":30,"index":3868},{"line":176,"col":30,"index":3868}],"416":[0,{"line":176,"col":20,"index":3858},{"line":176,"col":31,"index":3869}],"417":[0,{"line":176,"col":2,"index":3840},{"line":176,"col":31,"index":3869}],"418":[0,{"line":177,"col":18,"index":3889},{"line":177,"col":18,"index":3889}],"419":[0,{"line":177,"col":23,"index":3894},{"line":177,"col":23,"index":3894}],"420":[0,{"line":177,"col":18,"index":3889},{"line":177,"col":23,"index":3894}],"421":[0,{"line":177,"col":2,"index":3873},{"line":177,"col":23,"index":3894}],"422":[0,{"line":178,"col":19,"index":3915},{"line":178,"col":19,"index":3915}],"423":[0,{"line":178,"col":22,"index":3918},{"line":178,"col":22,"index":3918}],"424":[0,{"line":178,"col":25,"index":3921},{"line":178,"col":25,"index":3921}],"425":[0,{"line":178,"col":18,"index":3914},{"line":178,"col":26,"index":3922}],"426":[0,{"line":178,"col":2,"index":3898},{"line":178,"col":26,"index":3922}],"427":[0,{"line":179,"col":24,"index":3948},{"line":179,"col":24,"index":3948}],"428":[0,{"line":179,"col":27,"index":3951},{"line":179,"col":27,"index":3951}],"429":[0,{"line":179,"col":30,"index":3954},{"line":179,"col":30,"index":3954}],"430":[0,{"line":179,"col":19,"index":3943},{"line":179,"col":31,"index":3955}],"431":[0,{"line":179,"col":2,"index":3926},{"line":179,"col":31,"index":3955}],"432":[0,{"line":180,"col":23,"index":3980},{"line":180,"col":23,"index":3980}],"433":[0,{"line":180,"col":26,"index":3983},{"line":180,"col":26,"index":3983}],"434":[0,{"line":180,"col":29,"index":3986},{"line":180,"col":29,"index":3986}],"435":[0,{"line":180,"col":22,"index":3979},{"line":180,"col":30,"index":3987}],"436":[0,{"line":180,"col":32,"index":3989},{"line":180,"col":32,"index":3989}],"437":[0,{"line":180,"col":22,"index":3979},{"line":180,"col":33,"index":3990}],"438":[0,{"line":180,"col":2,"index":3959},{"line":180,"col":33,"index":3990}],"439":[0,{"line":181,"col":28,"index":4020},{"line":181,"col":33,"index":4025}],"440":[0,{"line":181,"col":22,"index":4014},{"line":181,"col":33,"index":4025}],"441":[0,{"line":181,"col":42,"index":4034},{"line":181,"col":45,"index":4037}],"442":[0,{"line":181,"col":36,"index":4028},{"line":181,"col":45,"index":4037}],"443":[0,{"line":181,"col":20,"index":4012},{"line":181,"col":47,"index":4039}],"444":[0,{"line":181,"col":2,"index":3994},{"line":181,"col":47,"index":4039}],"445":[0,{"line":182,"col":25,"index":4066},{"line":182,"col":30,"index":4071}],"446":[0,{"line":182,"col":33,"index":4074},{"line":182,"col":38,"index":4079}],"447":[0,{"line":182,"col":41,"index":4082},{"line":182,"col":46,"index":4087}],"448":[0,{"line":182,"col":49,"index":4090},{"line":182,"col":52,"index":4093}],"449":[0,{"line":182,"col":21,"index":4062},{"line":182,"col":53,"index":4094}],"450":[0,{"line":182,"col":2,"index":4043},{"line":182,"col":53,"index":4094}],"451":[0,{"line":183,"col":29,"index":4125},{"line":183,"col":35,"index":4131}],"452":[0,{"line":183,"col":23,"index":4119},{"line":183,"col":35,"index":4131}],"453":[0,{"line":183,"col":44,"index":4140},{"line":183,"col":47,"index":4143}],"454":[0,{"line":183,"col":38,"index":4134},{"line":183,"col":47,"index":4143}],"455":[0,{"line":183,"col":53,"index":4149},{"line":183,"col":63,"index":4159}],"456":[0,{"line":183,"col":21,"index":4117},{"line":183,"col":65,"index":4161}],"457":[0,{"line":183,"col":21,"index":4117},{"line":183,"col":65,"index":4161}],"458":[0,{"line":183,"col":2,"index":4098},{"line":183,"col":65,"index":4161}],"459":[0,{"line":184,"col":21,"index":4184},{"line":184,"col":21,"index":4184}],"460":[0,{"line":184,"col":24,"index":4187},{"line":184,"col":24,"index":4187}],"461":[0,{"line":184,"col":27,"index":4190},{"line":184,"col":27,"index":4190}],"462":[0,{"line":184,"col":17,"index":4180},{"line":184,"col":28,"index":4191}],"463":[0,{"line":184,"col":2,"index":4165},{"line":184,"col":28,"index":4191}],"464":[0,{"line":188,"col":22,"index":4263},{"line":188,"col":22,"index":4263}],"465":[0,{"line":188,"col":19,"index":4260},{"line":188,"col":22,"index":4263}],"466":[0,{"line":188,"col":28,"index":4269},{"line":188,"col":32,"index":4273}],"467":[0,{"line":188,"col":25,"index":4266},{"line":188,"col":32,"index":4273}],"468":[0,{"line":188,"col":17,"index":4258},{"line":188,"col":34,"index":4275}],"469":[0,{"line":188,"col":4,"index":4245},{"line":188,"col":34,"index":4275}],"470":[0,{"line":189,"col":4,"index":4281},{"line":189,"col":9,"index":4286}],"471":[0,{"line":189,"col":4,"index":4281},{"line":189,"col":11,"index":4288}],"472":[0,{"line":189,"col":4,"index":4281},{"line":189,"col":11,"index":4288}],"473":[0,{"line":188,"col":4,"index":4245},{"line":189,"col":47,"index":4288}],"474":[0,{"line":187,"col":2,"index":4225},{"line":189,"col":65,"index":4288}],"475":[0,{"line":192,"col":21,"index":4329},{"line":192,"col":23,"index":4331}],"476":[0,{"line":192,"col":26,"index":4334},{"line":192,"col":26,"index":4334}],"477":[0,{"line":192,"col":17,"index":4325},{"line":192,"col":27,"index":4335}],"478":[0,{"line":192,"col":4,"index":4312},{"line":192,"col":27,"index":4335}],"479":[0,{"line":193,"col":4,"index":4341},{"line":193,"col":9,"index":4346}],"480":[0,{"line":193,"col":4,"index":4341},{"line":193,"col":12,"index":4349}],"481":[0,{"line":193,"col":4,"index":4341},{"line":193,"col":12,"index":4349}],"482":[0,{"line":192,"col":4,"index":4312},{"line":193,"col":41,"index":4349}],"483":[0,{"line":191,"col":2,"index":4293},{"line":193,"col":58,"index":4349}],"484":[0,{"line":195,"col":14,"index":4366},{"line":195,"col":14,"index":4366}],"485":[0,{"line":195,"col":19,"index":4371},{"line":195,"col":19,"index":4371}],"486":[0,{"line":195,"col":24,"index":4376},{"line":195,"col":25,"index":4377}],"487":[0,{"line":195,"col":19,"index":4371},{"line":195,"col":25,"index":4377}],"488":[0,{"line":195,"col":2,"index":4354},{"line":195,"col":25,"index":4377}],"489":[0,{"line":195,"col":2,"index":4354},{"line":195,"col":25,"index":4377}],"490":[0,{"line":198,"col":19,"index":4425},{"line":198,"col":19,"index":4425}],"491":[0,{"line":198,"col":24,"index":4430},{"line":198,"col":28,"index":4434}],"492":[0,{"line":198,"col":19,"index":4425},{"line":198,"col":29,"index":4435}],"493":[0,{"line":198,"col":2,"index":4408},{"line":198,"col":29,"index":4435}],"494":[0,{"line":199,"col":23,"index":4460},{"line":199,"col":27,"index":4464}],"495":[0,{"line":199,"col":38,"index":4475},{"line":199,"col":42,"index":4479}],"496":[0,{"line":199,"col":23,"index":4460},{"line":199,"col":43,"index":4480}],"497":[0,{"line":199,"col":2,"index":4439},{"line":199,"col":43,"index":4480}],"498":[0,{"line":200,"col":22,"index":4504},{"line":200,"col":22,"index":4504}],"499":[0,{"line":200,"col":18,"index":4500},{"line":200,"col":23,"index":4505}],"500":[0,{"line":200,"col":41,"index":4523},{"line":200,"col":41,"index":4523}],"501":[0,{"line":200,"col":43,"index":4525},{"line":200,"col":43,"index":4525}],"502":[0,{"line":200,"col":45,"index":4527},{"line":200,"col":45,"index":4527}],"503":[0,{"line":200,"col":37,"index":4519},{"line":200,"col":46,"index":4528}],"504":[0,{"line":200,"col":28,"index":4510},{"line":200,"col":47,"index":4529}],"505":[0,{"line":200,"col":18,"index":4500},{"line":200,"col":48,"index":4530}],"506":[0,{"line":200,"col":2,"index":4484},{"line":200,"col":48,"index":4530}],"507":[0,{"line":203,"col":18,"index":4580},{"line":203,"col":18,"index":4580}],"508":[0,{"line":203,"col":21,"index":4583},{"line":203,"col":21,"index":4583}],"509":[0,{"line":203,"col":14,"index":4576},{"line":203,"col":22,"index":4584}],"510":[0,{"line":203,"col":37,"index":4599},{"line":203,"col":37,"index":4599}],"511":[0,{"line":203,"col":14,"index":4576},{"line":203,"col":38,"index":4600}],"512":[0,{"line":203,"col":2,"index":4564},{"line":203,"col":38,"index":4600}],"513":[0,{"line":206,"col":20,"index":4647},{"line":206,"col":20,"index":4647}],"514":[0,{"line":206,"col":24,"index":4651},{"line":206,"col":24,"index":4651}],"515":[0,{"line":206,"col":20,"index":4647},{"line":206,"col":24,"index":4651}],"516":[0,{"line":206,"col":2,"index":4629},{"line":206,"col":24,"index":4651}],"517":[0,{"line":208,"col":13,"index":4695},{"line":208,"col":13,"index":4695}],"518":[0,{"line":208,"col":18,"index":4700},{"line":208,"col":18,"index":4700}],"519":[0,{"line":208,"col":13,"index":4695},{"line":208,"col":18,"index":4700}],"520":[0,{"line":208,"col":2,"index":4684},{"line":208,"col":18,"index":4700}],"521":[0,{"line":211,"col":2,"index":4718},{"line":211,"col":14,"index":4730}],"522":[0,{"line":212,"col":2,"index":4734},{"line":212,"col":12,"index":4744}],"523":[0,{"line":215,"col":21,"index":4782},{"line":215,"col":23,"index":4784}],"524":[0,{"line":215,"col":17,"index":4778},{"line":215,"col":24,"index":4785}],"525":[0,{"line":215,"col":2,"index":4763},{"line":215,"col":24,"index":4785}],"526":[0,{"line":217,"col":2,"index":4790},{"line":217,"col":24,"index":4812}],"527":[0,{"line":219,"col":10,"index":4825},{"line":219,"col":16,"index":4831}],"528":[0,{"line":219,"col":2,"index":4817},{"line":219,"col":16,"index":4831}],"529":[0,{"line":227,"col":19,"index":5052},{"line":227,"col":19,"index":5052}],"530":[0,{"line":227,"col":15,"index":5048},{"line":227,"col":15,"index":5048}],"531":[0,{"line":227,"col":2,"index":5035},{"line":227,"col":29,"index":5062}],"532":[0,{"line":14,"col":0,"index":140},{"line":231,"col":5001,"index":5141}]}} \ No newline at end of file +{"sourceIndex":{"0":"mocked_path/testFixture/SuperSpec.qnt"},"map":{"1":[0,{"line":1,"col":12,"index":24},{"line":1,"col":12,"index":24}],"2":[0,{"line":1,"col":2,"index":14},{"line":1,"col":12,"index":24}],"3":[0,{"line":0,"col":0,"index":0},{"line":2,"col":26,"index":26}],"4":[0,{"line":5,"col":12,"index":53},{"line":5,"col":12,"index":53}],"5":[0,{"line":5,"col":2,"index":43},{"line":5,"col":12,"index":53}],"6":[0,{"line":4,"col":0,"index":29},{"line":6,"col":26,"index":55}],"7":[0,{"line":9,"col":11,"index":84},{"line":9,"col":13,"index":86}],"8":[0,{"line":9,"col":2,"index":75},{"line":9,"col":13,"index":86}],"9":[0,{"line":10,"col":9,"index":97},{"line":10,"col":11,"index":99}],"10":[0,{"line":10,"col":2,"index":90},{"line":10,"col":11,"index":99}],"11":[0,{"line":8,"col":0,"index":58},{"line":11,"col":43,"index":101}],"12":[0,{"line":16,"col":11,"index":186},{"line":16,"col":13,"index":188}],"13":[0,{"line":16,"col":2,"index":177},{"line":16,"col":13,"index":188}],"14":[0,{"line":17,"col":15,"index":205},{"line":17,"col":17,"index":207}],"15":[0,{"line":17,"col":11,"index":201},{"line":17,"col":18,"index":208}],"16":[0,{"line":17,"col":2,"index":192},{"line":17,"col":18,"index":208}],"17":[0,{"line":18,"col":19,"index":229},{"line":18,"col":21,"index":231}],"18":[0,{"line":18,"col":15,"index":225},{"line":18,"col":22,"index":232}],"19":[0,{"line":18,"col":2,"index":212},{"line":18,"col":22,"index":232}],"20":[0,{"line":19,"col":20,"index":254},{"line":19,"col":23,"index":257}],"21":[0,{"line":19,"col":15,"index":249},{"line":19,"col":24,"index":258}],"22":[0,{"line":19,"col":2,"index":236},{"line":19,"col":24,"index":258}],"23":[0,{"line":20,"col":15,"index":275},{"line":20,"col":17,"index":277}],"24":[0,{"line":20,"col":22,"index":282},{"line":20,"col":24,"index":284}],"25":[0,{"line":20,"col":15,"index":275},{"line":20,"col":24,"index":284}],"26":[0,{"line":20,"col":2,"index":262},{"line":20,"col":24,"index":284}],"27":[0,{"line":21,"col":19,"index":305},{"line":21,"col":21,"index":307}],"28":[0,{"line":21,"col":26,"index":312},{"line":21,"col":28,"index":314}],"29":[0,{"line":21,"col":19,"index":305},{"line":21,"col":28,"index":314}],"30":[0,{"line":21,"col":34,"index":320},{"line":21,"col":37,"index":323}],"31":[0,{"line":21,"col":18,"index":304},{"line":21,"col":37,"index":323}],"32":[0,{"line":21,"col":2,"index":288},{"line":21,"col":37,"index":323}],"33":[0,{"line":22,"col":21,"index":346},{"line":22,"col":23,"index":348}],"34":[0,{"line":22,"col":26,"index":351},{"line":22,"col":28,"index":353}],"35":[0,{"line":22,"col":34,"index":359},{"line":22,"col":37,"index":362}],"36":[0,{"line":22,"col":20,"index":345},{"line":22,"col":37,"index":362}],"37":[0,{"line":22,"col":2,"index":327},{"line":22,"col":37,"index":362}],"38":[0,{"line":23,"col":30,"index":394},{"line":23,"col":32,"index":396}],"39":[0,{"line":23,"col":35,"index":399},{"line":23,"col":37,"index":401}],"40":[0,{"line":23,"col":45,"index":409},{"line":23,"col":48,"index":412}],"41":[0,{"line":23,"col":29,"index":393},{"line":23,"col":48,"index":412}],"42":[0,{"line":23,"col":2,"index":366},{"line":23,"col":48,"index":412}],"43":[0,{"line":24,"col":18,"index":432},{"line":24,"col":20,"index":434}],"44":[0,{"line":24,"col":23,"index":437},{"line":24,"col":26,"index":440}],"45":[0,{"line":24,"col":29,"index":443},{"line":24,"col":31,"index":445}],"46":[0,{"line":24,"col":17,"index":431},{"line":24,"col":32,"index":446}],"47":[0,{"line":24,"col":2,"index":416},{"line":24,"col":32,"index":446}],"48":[0,{"line":25,"col":27,"index":475},{"line":25,"col":29,"index":477}],"49":[0,{"line":25,"col":32,"index":480},{"line":25,"col":35,"index":483}],"50":[0,{"line":25,"col":38,"index":486},{"line":25,"col":40,"index":488}],"51":[0,{"line":25,"col":26,"index":474},{"line":25,"col":43,"index":491}],"52":[0,{"line":25,"col":2,"index":450},{"line":25,"col":43,"index":491}],"53":[0,{"line":28,"col":23,"index":580},{"line":28,"col":25,"index":582}],"54":[0,{"line":28,"col":31,"index":588},{"line":28,"col":34,"index":591}],"55":[0,{"line":28,"col":40,"index":597},{"line":28,"col":42,"index":599}],"56":[0,{"line":28,"col":18,"index":575},{"line":28,"col":44,"index":601}],"57":[0,{"line":28,"col":2,"index":559},{"line":28,"col":44,"index":601}],"58":[0,{"line":29,"col":32,"index":635},{"line":29,"col":34,"index":637}],"59":[0,{"line":29,"col":40,"index":643},{"line":29,"col":43,"index":646}],"60":[0,{"line":29,"col":49,"index":652},{"line":29,"col":51,"index":654}],"61":[0,{"line":29,"col":27,"index":630},{"line":29,"col":54,"index":657}],"62":[0,{"line":29,"col":2,"index":605},{"line":29,"col":54,"index":657}],"63":[0,{"line":32,"col":33,"index":731},{"line":32,"col":35,"index":733}],"64":[0,{"line":32,"col":2,"index":700},{"line":32,"col":35,"index":733}],"65":[0,{"line":36,"col":15,"index":822},{"line":36,"col":17,"index":824}],"66":[0,{"line":37,"col":26,"index":853},{"line":37,"col":28,"index":855}],"67":[0,{"line":37,"col":39,"index":866},{"line":37,"col":41,"index":868}],"68":[0,{"line":37,"col":18,"index":845},{"line":37,"col":43,"index":870}],"69":[0,{"line":38,"col":12,"index":885},{"line":38,"col":14,"index":887}],"70":[0,{"line":35,"col":2,"index":788},{"line":38,"col":102,"index":888}],"71":[0,{"line":35,"col":2,"index":788},{"line":38,"col":102,"index":888}],"72":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"73":[0,{"line":36,"col":15,"index":822},{"line":36,"col":17,"index":824}],"74":[0,{"line":36,"col":8,"index":815},{"line":36,"col":13,"index":820}],"75":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"76":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"77":[0,{"line":36,"col":8,"index":815},{"line":36,"col":18,"index":825}],"78":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"79":[0,{"line":37,"col":18,"index":845},{"line":37,"col":43,"index":870}],"80":[0,{"line":37,"col":8,"index":835},{"line":37,"col":16,"index":843}],"81":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"82":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"83":[0,{"line":37,"col":8,"index":835},{"line":37,"col":44,"index":871}],"84":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"85":[0,{"line":38,"col":12,"index":885},{"line":38,"col":14,"index":887}],"86":[0,{"line":38,"col":8,"index":881},{"line":38,"col":10,"index":883}],"87":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"88":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"89":[0,{"line":38,"col":8,"index":881},{"line":38,"col":15,"index":888}],"90":[0,{"line":39,"col":17,"index":907},{"line":39,"col":27,"index":917}],"91":[0,{"line":39,"col":2,"index":892},{"line":39,"col":27,"index":917}],"92":[0,{"line":44,"col":9,"index":1031},{"line":44,"col":11,"index":1033}],"93":[0,{"line":44,"col":2,"index":1024},{"line":44,"col":11,"index":1033}],"94":[0,{"line":45,"col":9,"index":1044},{"line":45,"col":12,"index":1047}],"95":[0,{"line":45,"col":2,"index":1037},{"line":45,"col":12,"index":1047}],"96":[0,{"line":50,"col":19,"index":1216},{"line":50,"col":19,"index":1216}],"97":[0,{"line":50,"col":23,"index":1220},{"line":50,"col":23,"index":1220}],"98":[0,{"line":50,"col":19,"index":1216},{"line":50,"col":23,"index":1220}],"99":[0,{"line":50,"col":2,"index":1199},{"line":50,"col":23,"index":1220}],"100":[0,{"line":51,"col":19,"index":1241},{"line":51,"col":19,"index":1241}],"101":[0,{"line":51,"col":23,"index":1245},{"line":51,"col":23,"index":1245}],"102":[0,{"line":51,"col":19,"index":1241},{"line":51,"col":23,"index":1245}],"103":[0,{"line":51,"col":2,"index":1224},{"line":51,"col":23,"index":1245}],"104":[0,{"line":52,"col":19,"index":1266},{"line":52,"col":19,"index":1266}],"105":[0,{"line":52,"col":23,"index":1270},{"line":52,"col":23,"index":1270}],"106":[0,{"line":52,"col":19,"index":1266},{"line":52,"col":23,"index":1270}],"107":[0,{"line":52,"col":2,"index":1249},{"line":52,"col":23,"index":1270}],"108":[0,{"line":53,"col":19,"index":1291},{"line":53,"col":19,"index":1291}],"109":[0,{"line":53,"col":23,"index":1295},{"line":53,"col":23,"index":1295}],"110":[0,{"line":53,"col":19,"index":1291},{"line":53,"col":23,"index":1295}],"111":[0,{"line":53,"col":2,"index":1274},{"line":53,"col":23,"index":1295}],"112":[0,{"line":54,"col":19,"index":1316},{"line":54,"col":19,"index":1316}],"113":[0,{"line":54,"col":23,"index":1320},{"line":54,"col":23,"index":1320}],"114":[0,{"line":54,"col":19,"index":1316},{"line":54,"col":23,"index":1320}],"115":[0,{"line":54,"col":2,"index":1299},{"line":54,"col":23,"index":1320}],"116":[0,{"line":55,"col":19,"index":1341},{"line":55,"col":19,"index":1341}],"117":[0,{"line":55,"col":21,"index":1343},{"line":55,"col":21,"index":1343}],"118":[0,{"line":55,"col":19,"index":1341},{"line":55,"col":21,"index":1343}],"119":[0,{"line":55,"col":2,"index":1324},{"line":55,"col":21,"index":1343}],"120":[0,{"line":56,"col":16,"index":1361},{"line":56,"col":18,"index":1363}],"121":[0,{"line":56,"col":15,"index":1360},{"line":56,"col":18,"index":1363}],"122":[0,{"line":56,"col":2,"index":1347},{"line":56,"col":18,"index":1363}],"123":[0,{"line":57,"col":18,"index":1383},{"line":57,"col":18,"index":1383}],"124":[0,{"line":57,"col":22,"index":1387},{"line":57,"col":22,"index":1387}],"125":[0,{"line":57,"col":18,"index":1383},{"line":57,"col":22,"index":1387}],"126":[0,{"line":57,"col":2,"index":1367},{"line":57,"col":22,"index":1387}],"127":[0,{"line":58,"col":18,"index":1407},{"line":58,"col":18,"index":1407}],"128":[0,{"line":58,"col":23,"index":1412},{"line":58,"col":23,"index":1412}],"129":[0,{"line":58,"col":18,"index":1407},{"line":58,"col":23,"index":1412}],"130":[0,{"line":58,"col":2,"index":1391},{"line":58,"col":23,"index":1412}],"131":[0,{"line":59,"col":18,"index":1432},{"line":59,"col":18,"index":1432}],"132":[0,{"line":59,"col":22,"index":1436},{"line":59,"col":22,"index":1436}],"133":[0,{"line":59,"col":18,"index":1432},{"line":59,"col":22,"index":1436}],"134":[0,{"line":59,"col":2,"index":1416},{"line":59,"col":22,"index":1436}],"135":[0,{"line":60,"col":18,"index":1456},{"line":60,"col":18,"index":1456}],"136":[0,{"line":60,"col":23,"index":1461},{"line":60,"col":23,"index":1461}],"137":[0,{"line":60,"col":18,"index":1456},{"line":60,"col":23,"index":1461}],"138":[0,{"line":60,"col":2,"index":1440},{"line":60,"col":23,"index":1461}],"139":[0,{"line":61,"col":20,"index":1483},{"line":61,"col":20,"index":1483}],"140":[0,{"line":61,"col":25,"index":1488},{"line":61,"col":25,"index":1488}],"141":[0,{"line":61,"col":20,"index":1483},{"line":61,"col":25,"index":1488}],"142":[0,{"line":61,"col":2,"index":1465},{"line":61,"col":25,"index":1488}],"143":[0,{"line":62,"col":18,"index":1508},{"line":62,"col":18,"index":1508}],"144":[0,{"line":62,"col":23,"index":1513},{"line":62,"col":23,"index":1513}],"145":[0,{"line":62,"col":18,"index":1508},{"line":62,"col":23,"index":1513}],"146":[0,{"line":62,"col":2,"index":1492},{"line":62,"col":23,"index":1513}],"147":[0,{"line":64,"col":6,"index":1540},{"line":64,"col":6,"index":1540}],"148":[0,{"line":64,"col":10,"index":1544},{"line":64,"col":10,"index":1544}],"149":[0,{"line":64,"col":6,"index":1540},{"line":64,"col":10,"index":1544}],"150":[0,{"line":64,"col":15,"index":1549},{"line":64,"col":15,"index":1549}],"151":[0,{"line":64,"col":6,"index":1540},{"line":64,"col":15,"index":1549}],"152":[0,{"line":63,"col":2,"index":1517},{"line":65,"col":38,"index":1553}],"153":[0,{"line":66,"col":25,"index":1580},{"line":66,"col":25,"index":1580}],"154":[0,{"line":66,"col":30,"index":1585},{"line":66,"col":32,"index":1587}],"155":[0,{"line":66,"col":25,"index":1580},{"line":66,"col":33,"index":1588}],"156":[0,{"line":66,"col":2,"index":1557},{"line":66,"col":33,"index":1588}],"157":[0,{"line":67,"col":23,"index":1613},{"line":67,"col":26,"index":1616}],"158":[0,{"line":67,"col":35,"index":1625},{"line":67,"col":35,"index":1625}],"159":[0,{"line":67,"col":40,"index":1630},{"line":67,"col":40,"index":1630}],"160":[0,{"line":67,"col":35,"index":1625},{"line":67,"col":40,"index":1630}],"161":[0,{"line":67,"col":23,"index":1613},{"line":67,"col":41,"index":1631}],"162":[0,{"line":67,"col":2,"index":1592},{"line":67,"col":41,"index":1631}],"163":[0,{"line":70,"col":20,"index":1670},{"line":70,"col":22,"index":1672}],"164":[0,{"line":70,"col":16,"index":1666},{"line":70,"col":23,"index":1673}],"165":[0,{"line":70,"col":31,"index":1681},{"line":70,"col":31,"index":1681}],"166":[0,{"line":70,"col":34,"index":1684},{"line":70,"col":34,"index":1684}],"167":[0,{"line":70,"col":27,"index":1677},{"line":70,"col":35,"index":1685}],"168":[0,{"line":70,"col":2,"index":1652},{"line":70,"col":35,"index":1685}],"169":[0,{"line":72,"col":2,"index":1724},{"line":72,"col":10,"index":1732}],"170":[0,{"line":73,"col":33,"index":1767},{"line":73,"col":36,"index":1770}],"171":[0,{"line":73,"col":29,"index":1763},{"line":73,"col":37,"index":1771}],"172":[0,{"line":73,"col":41,"index":1775},{"line":73,"col":45,"index":1779}],"173":[0,{"line":73,"col":2,"index":1736},{"line":73,"col":45,"index":1779}],"174":[0,{"line":76,"col":9,"index":1817},{"line":76,"col":11,"index":1819}],"175":[0,{"line":76,"col":2,"index":1810},{"line":76,"col":11,"index":1819}],"176":[0,{"line":77,"col":25,"index":1846},{"line":77,"col":26,"index":1847}],"177":[0,{"line":77,"col":2,"index":1823},{"line":77,"col":26,"index":1847}],"178":[0,{"line":78,"col":15,"index":1864},{"line":78,"col":15,"index":1864}],"179":[0,{"line":78,"col":18,"index":1867},{"line":78,"col":18,"index":1867}],"180":[0,{"line":78,"col":23,"index":1872},{"line":78,"col":23,"index":1872}],"181":[0,{"line":78,"col":27,"index":1876},{"line":78,"col":27,"index":1876}],"182":[0,{"line":78,"col":23,"index":1872},{"line":78,"col":27,"index":1876}],"183":[0,{"line":78,"col":2,"index":1851},{"line":78,"col":27,"index":1876}],"184":[0,{"line":78,"col":2,"index":1851},{"line":78,"col":27,"index":1876}],"185":[0,{"line":79,"col":10,"index":1888},{"line":79,"col":15,"index":1893}],"186":[0,{"line":79,"col":20,"index":1898},{"line":79,"col":25,"index":1903}],"187":[0,{"line":79,"col":29,"index":1907},{"line":79,"col":29,"index":1907}],"188":[0,{"line":79,"col":20,"index":1898},{"line":79,"col":29,"index":1907}],"189":[0,{"line":79,"col":2,"index":1880},{"line":79,"col":29,"index":1907}],"190":[0,{"line":79,"col":2,"index":1880},{"line":79,"col":29,"index":1907}],"191":[0,{"line":80,"col":11,"index":1920},{"line":80,"col":11,"index":1920}],"192":[0,{"line":80,"col":21,"index":1930},{"line":80,"col":21,"index":1930}],"193":[0,{"line":80,"col":16,"index":1925},{"line":80,"col":21,"index":1930}],"194":[0,{"line":80,"col":16,"index":1925},{"line":80,"col":21,"index":1930}],"195":[0,{"line":80,"col":2,"index":1911},{"line":80,"col":21,"index":1930}],"196":[0,{"line":80,"col":2,"index":1911},{"line":80,"col":21,"index":1930}],"197":[0,{"line":81,"col":13,"index":1945},{"line":81,"col":13,"index":1945}],"198":[0,{"line":81,"col":22,"index":1954},{"line":81,"col":22,"index":1954}],"199":[0,{"line":81,"col":18,"index":1950},{"line":81,"col":23,"index":1955}],"200":[0,{"line":81,"col":2,"index":1934},{"line":81,"col":23,"index":1955}],"201":[0,{"line":81,"col":2,"index":1934},{"line":81,"col":23,"index":1955}],"202":[0,{"line":84,"col":8,"index":1987},{"line":84,"col":8,"index":1987}],"203":[0,{"line":84,"col":11,"index":1990},{"line":84,"col":11,"index":1990}],"204":[0,{"line":84,"col":16,"index":1995},{"line":84,"col":18,"index":1997}],"205":[0,{"line":84,"col":21,"index":2000},{"line":84,"col":23,"index":2002}],"206":[0,{"line":84,"col":29,"index":2008},{"line":84,"col":31,"index":2010}],"207":[0,{"line":84,"col":15,"index":1994},{"line":84,"col":31,"index":2010}],"208":[0,{"line":85,"col":6,"index":2022},{"line":85,"col":6,"index":2022}],"209":[0,{"line":85,"col":10,"index":2026},{"line":85,"col":10,"index":2026}],"210":[0,{"line":85,"col":6,"index":2022},{"line":85,"col":10,"index":2026}],"211":[0,{"line":84,"col":2,"index":1981},{"line":86,"col":51,"index":2030}],"212":[0,{"line":84,"col":2,"index":1981},{"line":86,"col":51,"index":2030}],"213":[0,{"line":88,"col":10,"index":2073},{"line":88,"col":10,"index":2073}],"214":[0,{"line":88,"col":15,"index":2078},{"line":88,"col":15,"index":2078}],"215":[0,{"line":88,"col":21,"index":2084},{"line":88,"col":21,"index":2084}],"216":[0,{"line":88,"col":14,"index":2077},{"line":88,"col":21,"index":2084}],"217":[0,{"line":89,"col":6,"index":2096},{"line":89,"col":6,"index":2096}],"218":[0,{"line":88,"col":2,"index":2065},{"line":90,"col":37,"index":2100}],"219":[0,{"line":88,"col":2,"index":2065},{"line":90,"col":37,"index":2100}],"220":[0,{"line":92,"col":9,"index":2112},{"line":92,"col":11,"index":2114}],"221":[0,{"line":92,"col":2,"index":2105},{"line":92,"col":11,"index":2114}],"222":[0,{"line":93,"col":21,"index":2137},{"line":93,"col":21,"index":2137}],"223":[0,{"line":93,"col":16,"index":2132},{"line":93,"col":21,"index":2137}],"224":[0,{"line":93,"col":16,"index":2132},{"line":93,"col":21,"index":2137}],"225":[0,{"line":93,"col":2,"index":2118},{"line":93,"col":21,"index":2137}],"226":[0,{"line":96,"col":18,"index":2192},{"line":96,"col":20,"index":2194}],"227":[0,{"line":96,"col":15,"index":2189},{"line":96,"col":20,"index":2194}],"228":[0,{"line":96,"col":26,"index":2200},{"line":96,"col":28,"index":2202}],"229":[0,{"line":96,"col":23,"index":2197},{"line":96,"col":28,"index":2202}],"230":[0,{"line":96,"col":32,"index":2206},{"line":96,"col":34,"index":2208}],"231":[0,{"line":97,"col":8,"index":2222},{"line":97,"col":8,"index":2222}],"232":[0,{"line":97,"col":12,"index":2226},{"line":97,"col":12,"index":2226}],"233":[0,{"line":97,"col":8,"index":2222},{"line":97,"col":12,"index":2226}],"234":[0,{"line":98,"col":4,"index":2233},{"line":98,"col":4,"index":2233}],"235":[0,{"line":99,"col":9,"index":2244},{"line":99,"col":9,"index":2244}],"236":[0,{"line":97,"col":4,"index":2218},{"line":99,"col":30,"index":2244}],"237":[0,{"line":96,"col":2,"index":2176},{"line":100,"col":74,"index":2248}],"238":[0,{"line":96,"col":2,"index":2176},{"line":100,"col":74,"index":2248}],"239":[0,{"line":104,"col":17,"index":2292},{"line":104,"col":21,"index":2296}],"240":[0,{"line":104,"col":27,"index":2302},{"line":104,"col":30,"index":2305}],"241":[0,{"line":104,"col":17,"index":2292},{"line":104,"col":30,"index":2305}],"242":[0,{"line":104,"col":2,"index":2277},{"line":104,"col":30,"index":2305}],"243":[0,{"line":105,"col":16,"index":2323},{"line":105,"col":20,"index":2327}],"244":[0,{"line":105,"col":25,"index":2332},{"line":105,"col":28,"index":2335}],"245":[0,{"line":105,"col":16,"index":2323},{"line":105,"col":28,"index":2335}],"246":[0,{"line":105,"col":2,"index":2309},{"line":105,"col":28,"index":2335}],"247":[0,{"line":106,"col":21,"index":2358},{"line":106,"col":25,"index":2362}],"248":[0,{"line":106,"col":35,"index":2372},{"line":106,"col":38,"index":2375}],"249":[0,{"line":106,"col":21,"index":2358},{"line":106,"col":38,"index":2375}],"250":[0,{"line":106,"col":2,"index":2339},{"line":106,"col":38,"index":2375}],"251":[0,{"line":107,"col":8,"index":2385},{"line":107,"col":8,"index":2385}],"252":[0,{"line":107,"col":13,"index":2390},{"line":107,"col":13,"index":2390}],"253":[0,{"line":107,"col":2,"index":2379},{"line":107,"col":13,"index":2390}],"254":[0,{"line":107,"col":2,"index":2379},{"line":107,"col":13,"index":2390}],"255":[0,{"line":108,"col":8,"index":2400},{"line":108,"col":8,"index":2400}],"256":[0,{"line":108,"col":15,"index":2407},{"line":108,"col":15,"index":2407}],"257":[0,{"line":108,"col":13,"index":2405},{"line":108,"col":16,"index":2408}],"258":[0,{"line":108,"col":26,"index":2418},{"line":108,"col":26,"index":2418}],"259":[0,{"line":108,"col":22,"index":2414},{"line":108,"col":27,"index":2419}],"260":[0,{"line":108,"col":13,"index":2405},{"line":108,"col":27,"index":2419}],"261":[0,{"line":108,"col":2,"index":2394},{"line":108,"col":27,"index":2419}],"262":[0,{"line":108,"col":2,"index":2394},{"line":108,"col":27,"index":2419}],"263":[0,{"line":109,"col":19,"index":2440},{"line":109,"col":19,"index":2440}],"264":[0,{"line":109,"col":26,"index":2447},{"line":109,"col":26,"index":2447}],"265":[0,{"line":109,"col":24,"index":2445},{"line":109,"col":27,"index":2448}],"266":[0,{"line":109,"col":37,"index":2458},{"line":109,"col":37,"index":2458}],"267":[0,{"line":109,"col":33,"index":2454},{"line":109,"col":38,"index":2459}],"268":[0,{"line":109,"col":24,"index":2445},{"line":109,"col":38,"index":2459}],"269":[0,{"line":109,"col":2,"index":2423},{"line":109,"col":38,"index":2459}],"270":[0,{"line":109,"col":2,"index":2423},{"line":109,"col":38,"index":2459}],"271":[0,{"line":110,"col":18,"index":2479},{"line":110,"col":18,"index":2479}],"272":[0,{"line":110,"col":25,"index":2486},{"line":110,"col":25,"index":2486}],"273":[0,{"line":110,"col":23,"index":2484},{"line":110,"col":26,"index":2487}],"274":[0,{"line":110,"col":35,"index":2496},{"line":110,"col":35,"index":2496}],"275":[0,{"line":110,"col":31,"index":2492},{"line":110,"col":36,"index":2497}],"276":[0,{"line":110,"col":23,"index":2484},{"line":110,"col":36,"index":2497}],"277":[0,{"line":110,"col":2,"index":2463},{"line":110,"col":36,"index":2497}],"278":[0,{"line":110,"col":2,"index":2463},{"line":110,"col":36,"index":2497}],"279":[0,{"line":113,"col":6,"index":2535},{"line":113,"col":10,"index":2539}],"280":[0,{"line":114,"col":6,"index":2548},{"line":114,"col":9,"index":2551}],"281":[0,{"line":115,"col":6,"index":2560},{"line":115,"col":10,"index":2564}],"282":[0,{"line":112,"col":23,"index":2523},{"line":116,"col":68,"index":2568}],"283":[0,{"line":112,"col":2,"index":2502},{"line":116,"col":68,"index":2568}],"284":[0,{"line":119,"col":6,"index":2610},{"line":119,"col":10,"index":2614}],"285":[0,{"line":120,"col":6,"index":2623},{"line":120,"col":9,"index":2626}],"286":[0,{"line":121,"col":6,"index":2635},{"line":121,"col":10,"index":2639}],"287":[0,{"line":118,"col":27,"index":2598},{"line":122,"col":72,"index":2643}],"288":[0,{"line":118,"col":2,"index":2573},{"line":122,"col":72,"index":2643}],"289":[0,{"line":125,"col":6,"index":2679},{"line":125,"col":10,"index":2683}],"290":[0,{"line":126,"col":6,"index":2692},{"line":126,"col":9,"index":2695}],"291":[0,{"line":127,"col":6,"index":2704},{"line":127,"col":10,"index":2708}],"292":[0,{"line":124,"col":22,"index":2668},{"line":128,"col":66,"index":2712}],"293":[0,{"line":124,"col":2,"index":2648},{"line":128,"col":66,"index":2712}],"294":[0,{"line":131,"col":6,"index":2753},{"line":131,"col":10,"index":2757}],"295":[0,{"line":132,"col":6,"index":2766},{"line":132,"col":9,"index":2769}],"296":[0,{"line":133,"col":6,"index":2778},{"line":133,"col":10,"index":2782}],"297":[0,{"line":130,"col":26,"index":2741},{"line":134,"col":71,"index":2786}],"298":[0,{"line":130,"col":2,"index":2717},{"line":134,"col":71,"index":2786}],"299":[0,{"line":136,"col":21,"index":2810},{"line":136,"col":24,"index":2813}],"300":[0,{"line":136,"col":27,"index":2816},{"line":136,"col":27,"index":2816}],"301":[0,{"line":136,"col":34,"index":2823},{"line":136,"col":34,"index":2823}],"302":[0,{"line":136,"col":17,"index":2806},{"line":136,"col":34,"index":2823}],"303":[0,{"line":136,"col":2,"index":2791},{"line":136,"col":34,"index":2823}],"304":[0,{"line":137,"col":16,"index":2841},{"line":137,"col":16,"index":2841}],"305":[0,{"line":137,"col":19,"index":2844},{"line":137,"col":19,"index":2844}],"306":[0,{"line":137,"col":28,"index":2853},{"line":137,"col":28,"index":2853}],"307":[0,{"line":137,"col":32,"index":2857},{"line":137,"col":33,"index":2858}],"308":[0,{"line":137,"col":28,"index":2853},{"line":137,"col":33,"index":2858}],"309":[0,{"line":137,"col":36,"index":2861},{"line":137,"col":36,"index":2861}],"310":[0,{"line":137,"col":40,"index":2865},{"line":137,"col":40,"index":2865}],"311":[0,{"line":137,"col":36,"index":2861},{"line":137,"col":40,"index":2865}],"312":[0,{"line":137,"col":47,"index":2872},{"line":137,"col":47,"index":2872}],"313":[0,{"line":137,"col":51,"index":2876},{"line":137,"col":51,"index":2876}],"314":[0,{"line":137,"col":47,"index":2872},{"line":137,"col":51,"index":2876}],"315":[0,{"line":137,"col":24,"index":2849},{"line":137,"col":51,"index":2876}],"316":[0,{"line":137,"col":2,"index":2827},{"line":137,"col":51,"index":2876}],"317":[0,{"line":137,"col":2,"index":2827},{"line":137,"col":51,"index":2876}],"318":[0,{"line":140,"col":10,"index":2915},{"line":140,"col":12,"index":2917}],"319":[0,{"line":140,"col":17,"index":2922},{"line":140,"col":19,"index":2924}],"320":[0,{"line":140,"col":10,"index":2915},{"line":140,"col":19,"index":2924}],"321":[0,{"line":140,"col":2,"index":2907},{"line":140,"col":19,"index":2924}],"322":[0,{"line":141,"col":15,"index":2941},{"line":141,"col":16,"index":2942}],"323":[0,{"line":141,"col":22,"index":2948},{"line":141,"col":24,"index":2950}],"324":[0,{"line":141,"col":15,"index":2941},{"line":141,"col":25,"index":2951}],"325":[0,{"line":141,"col":2,"index":2928},{"line":141,"col":25,"index":2951}],"326":[0,{"line":144,"col":13,"index":3015},{"line":144,"col":13,"index":3015}],"327":[0,{"line":144,"col":16,"index":3018},{"line":144,"col":16,"index":3018}],"328":[0,{"line":144,"col":21,"index":3023},{"line":144,"col":21,"index":3023}],"329":[0,{"line":144,"col":2,"index":3004},{"line":144,"col":21,"index":3023}],"330":[0,{"line":144,"col":2,"index":3004},{"line":144,"col":21,"index":3023}],"331":[0,{"line":145,"col":31,"index":3056},{"line":145,"col":33,"index":3058}],"332":[0,{"line":145,"col":36,"index":3061},{"line":145,"col":37,"index":3062}],"333":[0,{"line":145,"col":24,"index":3049},{"line":145,"col":38,"index":3063}],"334":[0,{"line":145,"col":2,"index":3027},{"line":145,"col":38,"index":3063}],"335":[0,{"line":146,"col":22,"index":3087},{"line":146,"col":24,"index":3089}],"336":[0,{"line":146,"col":33,"index":3098},{"line":146,"col":34,"index":3099}],"337":[0,{"line":146,"col":22,"index":3087},{"line":146,"col":35,"index":3100}],"338":[0,{"line":146,"col":2,"index":3067},{"line":146,"col":35,"index":3100}],"339":[0,{"line":148,"col":19,"index":3178},{"line":148,"col":19,"index":3178}],"340":[0,{"line":148,"col":22,"index":3181},{"line":148,"col":26,"index":3185}],"341":[0,{"line":148,"col":16,"index":3175},{"line":148,"col":27,"index":3186}],"342":[0,{"line":148,"col":2,"index":3161},{"line":148,"col":27,"index":3186}],"343":[0,{"line":153,"col":22,"index":3355},{"line":153,"col":22,"index":3355}],"344":[0,{"line":153,"col":31,"index":3364},{"line":153,"col":31,"index":3364}],"345":[0,{"line":153,"col":36,"index":3369},{"line":153,"col":36,"index":3369}],"346":[0,{"line":153,"col":40,"index":3373},{"line":153,"col":41,"index":3374}],"347":[0,{"line":153,"col":36,"index":3369},{"line":153,"col":41,"index":3374}],"348":[0,{"line":153,"col":31,"index":3364},{"line":153,"col":41,"index":3374}],"349":[0,{"line":153,"col":22,"index":3355},{"line":153,"col":42,"index":3375}],"350":[0,{"line":153,"col":2,"index":3335},{"line":153,"col":42,"index":3375}],"351":[0,{"line":155,"col":25,"index":3432},{"line":155,"col":25,"index":3432}],"352":[0,{"line":155,"col":28,"index":3435},{"line":155,"col":32,"index":3439}],"353":[0,{"line":155,"col":18,"index":3425},{"line":155,"col":33,"index":3440}],"354":[0,{"line":155,"col":42,"index":3449},{"line":155,"col":42,"index":3449}],"355":[0,{"line":155,"col":45,"index":3452},{"line":155,"col":47,"index":3454}],"356":[0,{"line":155,"col":54,"index":3461},{"line":155,"col":54,"index":3461}],"357":[0,{"line":155,"col":58,"index":3465},{"line":155,"col":60,"index":3467}],"358":[0,{"line":155,"col":54,"index":3461},{"line":155,"col":60,"index":3467}],"359":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"360":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"361":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"362":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"363":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"364":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"365":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"366":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"367":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"368":[0,{"line":155,"col":40,"index":3447},{"line":155,"col":60,"index":3467}],"369":[0,{"line":155,"col":18,"index":3425},{"line":155,"col":62,"index":3469}],"370":[0,{"line":155,"col":2,"index":3409},{"line":155,"col":62,"index":3469}],"371":[0,{"line":158,"col":21,"index":3534},{"line":158,"col":21,"index":3534}],"372":[0,{"line":158,"col":15,"index":3528},{"line":158,"col":22,"index":3535}],"373":[0,{"line":158,"col":4,"index":3517},{"line":158,"col":22,"index":3535}],"374":[0,{"line":160,"col":6,"index":3553},{"line":160,"col":6,"index":3553}],"375":[0,{"line":160,"col":10,"index":3557},{"line":160,"col":11,"index":3558}],"376":[0,{"line":160,"col":6,"index":3553},{"line":160,"col":11,"index":3558}],"377":[0,{"line":161,"col":11,"index":3572},{"line":161,"col":11,"index":3572}],"378":[0,{"line":161,"col":6,"index":3567},{"line":161,"col":11,"index":3572}],"379":[0,{"line":161,"col":6,"index":3567},{"line":161,"col":11,"index":3572}],"380":[0,{"line":159,"col":4,"index":3541},{"line":162,"col":41,"index":3578}],"381":[0,{"line":158,"col":4,"index":3517},{"line":162,"col":65,"index":3578}],"382":[0,{"line":157,"col":2,"index":3490},{"line":163,"col":94,"index":3582}],"383":[0,{"line":165,"col":22,"index":3621},{"line":165,"col":22,"index":3621}],"384":[0,{"line":165,"col":31,"index":3630},{"line":165,"col":31,"index":3630}],"385":[0,{"line":165,"col":36,"index":3635},{"line":165,"col":39,"index":3638}],"386":[0,{"line":165,"col":31,"index":3630},{"line":165,"col":39,"index":3638}],"387":[0,{"line":165,"col":22,"index":3621},{"line":165,"col":40,"index":3639}],"388":[0,{"line":165,"col":2,"index":3601},{"line":165,"col":40,"index":3639}],"389":[0,{"line":167,"col":10,"index":3652},{"line":167,"col":10,"index":3652}],"390":[0,{"line":167,"col":18,"index":3660},{"line":167,"col":18,"index":3660}],"391":[0,{"line":167,"col":23,"index":3665},{"line":167,"col":23,"index":3665}],"392":[0,{"line":167,"col":27,"index":3669},{"line":167,"col":27,"index":3669}],"393":[0,{"line":167,"col":23,"index":3665},{"line":167,"col":27,"index":3669}],"394":[0,{"line":167,"col":18,"index":3660},{"line":167,"col":27,"index":3669}],"395":[0,{"line":167,"col":10,"index":3652},{"line":167,"col":28,"index":3670}],"396":[0,{"line":167,"col":2,"index":3644},{"line":167,"col":28,"index":3670}],"397":[0,{"line":169,"col":23,"index":3696},{"line":169,"col":23,"index":3696}],"398":[0,{"line":169,"col":37,"index":3710},{"line":169,"col":37,"index":3710}],"399":[0,{"line":169,"col":40,"index":3713},{"line":169,"col":40,"index":3713}],"400":[0,{"line":169,"col":33,"index":3706},{"line":169,"col":41,"index":3714}],"401":[0,{"line":169,"col":23,"index":3696},{"line":169,"col":42,"index":3715}],"402":[0,{"line":169,"col":2,"index":3675},{"line":169,"col":42,"index":3715}],"403":[0,{"line":172,"col":17,"index":3774},{"line":172,"col":17,"index":3774}],"404":[0,{"line":172,"col":20,"index":3777},{"line":172,"col":20,"index":3777}],"405":[0,{"line":172,"col":12,"index":3769},{"line":172,"col":21,"index":3778}],"406":[0,{"line":172,"col":12,"index":3769},{"line":172,"col":28,"index":3785}],"407":[0,{"line":172,"col":2,"index":3759},{"line":172,"col":28,"index":3785}],"408":[0,{"line":175,"col":20,"index":3829},{"line":175,"col":20,"index":3829}],"409":[0,{"line":175,"col":23,"index":3832},{"line":175,"col":23,"index":3832}],"410":[0,{"line":175,"col":26,"index":3835},{"line":175,"col":26,"index":3835}],"411":[0,{"line":175,"col":19,"index":3828},{"line":175,"col":27,"index":3836}],"412":[0,{"line":175,"col":2,"index":3811},{"line":175,"col":27,"index":3836}],"413":[0,{"line":178,"col":18,"index":3928},{"line":178,"col":18,"index":3928}],"414":[0,{"line":178,"col":23,"index":3933},{"line":178,"col":23,"index":3933}],"415":[0,{"line":178,"col":18,"index":3928},{"line":178,"col":23,"index":3933}],"416":[0,{"line":178,"col":2,"index":3912},{"line":178,"col":23,"index":3933}],"417":[0,{"line":179,"col":19,"index":3954},{"line":179,"col":19,"index":3954}],"418":[0,{"line":179,"col":22,"index":3957},{"line":179,"col":22,"index":3957}],"419":[0,{"line":179,"col":25,"index":3960},{"line":179,"col":25,"index":3960}],"420":[0,{"line":179,"col":18,"index":3953},{"line":179,"col":26,"index":3961}],"421":[0,{"line":179,"col":2,"index":3937},{"line":179,"col":26,"index":3961}],"422":[0,{"line":180,"col":24,"index":3987},{"line":180,"col":24,"index":3987}],"423":[0,{"line":180,"col":27,"index":3990},{"line":180,"col":27,"index":3990}],"424":[0,{"line":180,"col":30,"index":3993},{"line":180,"col":30,"index":3993}],"425":[0,{"line":180,"col":19,"index":3982},{"line":180,"col":31,"index":3994}],"426":[0,{"line":180,"col":2,"index":3965},{"line":180,"col":31,"index":3994}],"427":[0,{"line":181,"col":23,"index":4019},{"line":181,"col":23,"index":4019}],"428":[0,{"line":181,"col":26,"index":4022},{"line":181,"col":26,"index":4022}],"429":[0,{"line":181,"col":29,"index":4025},{"line":181,"col":29,"index":4025}],"430":[0,{"line":181,"col":22,"index":4018},{"line":181,"col":30,"index":4026}],"431":[0,{"line":181,"col":32,"index":4028},{"line":181,"col":32,"index":4028}],"432":[0,{"line":181,"col":22,"index":4018},{"line":181,"col":33,"index":4029}],"433":[0,{"line":181,"col":2,"index":3998},{"line":181,"col":33,"index":4029}],"434":[0,{"line":182,"col":28,"index":4059},{"line":182,"col":33,"index":4064}],"435":[0,{"line":182,"col":22,"index":4053},{"line":182,"col":33,"index":4064}],"436":[0,{"line":182,"col":42,"index":4073},{"line":182,"col":45,"index":4076}],"437":[0,{"line":182,"col":36,"index":4067},{"line":182,"col":45,"index":4076}],"438":[0,{"line":182,"col":20,"index":4051},{"line":182,"col":47,"index":4078}],"439":[0,{"line":182,"col":2,"index":4033},{"line":182,"col":47,"index":4078}],"440":[0,{"line":183,"col":25,"index":4105},{"line":183,"col":30,"index":4110}],"441":[0,{"line":183,"col":33,"index":4113},{"line":183,"col":38,"index":4118}],"442":[0,{"line":183,"col":41,"index":4121},{"line":183,"col":46,"index":4126}],"443":[0,{"line":183,"col":49,"index":4129},{"line":183,"col":52,"index":4132}],"444":[0,{"line":183,"col":21,"index":4101},{"line":183,"col":53,"index":4133}],"445":[0,{"line":183,"col":2,"index":4082},{"line":183,"col":53,"index":4133}],"446":[0,{"line":184,"col":29,"index":4164},{"line":184,"col":35,"index":4170}],"447":[0,{"line":184,"col":23,"index":4158},{"line":184,"col":35,"index":4170}],"448":[0,{"line":184,"col":44,"index":4179},{"line":184,"col":47,"index":4182}],"449":[0,{"line":184,"col":38,"index":4173},{"line":184,"col":47,"index":4182}],"450":[0,{"line":184,"col":53,"index":4188},{"line":184,"col":63,"index":4198}],"451":[0,{"line":184,"col":21,"index":4156},{"line":184,"col":65,"index":4200}],"452":[0,{"line":184,"col":21,"index":4156},{"line":184,"col":65,"index":4200}],"453":[0,{"line":184,"col":2,"index":4137},{"line":184,"col":65,"index":4200}],"454":[0,{"line":185,"col":21,"index":4223},{"line":185,"col":21,"index":4223}],"455":[0,{"line":185,"col":24,"index":4226},{"line":185,"col":24,"index":4226}],"456":[0,{"line":185,"col":27,"index":4229},{"line":185,"col":27,"index":4229}],"457":[0,{"line":185,"col":17,"index":4219},{"line":185,"col":28,"index":4230}],"458":[0,{"line":185,"col":2,"index":4204},{"line":185,"col":28,"index":4230}],"459":[0,{"line":189,"col":22,"index":4302},{"line":189,"col":22,"index":4302}],"460":[0,{"line":189,"col":19,"index":4299},{"line":189,"col":22,"index":4302}],"461":[0,{"line":189,"col":28,"index":4308},{"line":189,"col":32,"index":4312}],"462":[0,{"line":189,"col":25,"index":4305},{"line":189,"col":32,"index":4312}],"463":[0,{"line":189,"col":17,"index":4297},{"line":189,"col":34,"index":4314}],"464":[0,{"line":189,"col":4,"index":4284},{"line":189,"col":34,"index":4314}],"465":[0,{"line":190,"col":4,"index":4320},{"line":190,"col":9,"index":4325}],"466":[0,{"line":190,"col":4,"index":4320},{"line":190,"col":11,"index":4327}],"467":[0,{"line":190,"col":4,"index":4320},{"line":190,"col":11,"index":4327}],"468":[0,{"line":189,"col":4,"index":4284},{"line":190,"col":47,"index":4327}],"469":[0,{"line":188,"col":2,"index":4264},{"line":190,"col":65,"index":4327}],"470":[0,{"line":194,"col":18,"index":4397},{"line":194,"col":20,"index":4399}],"471":[0,{"line":194,"col":23,"index":4402},{"line":194,"col":23,"index":4402}],"472":[0,{"line":194,"col":17,"index":4396},{"line":194,"col":24,"index":4403}],"473":[0,{"line":194,"col":4,"index":4383},{"line":194,"col":24,"index":4403}],"474":[0,{"line":195,"col":4,"index":4409},{"line":195,"col":9,"index":4414}],"475":[0,{"line":195,"col":4,"index":4409},{"line":195,"col":12,"index":4417}],"476":[0,{"line":195,"col":4,"index":4409},{"line":195,"col":12,"index":4417}],"477":[0,{"line":194,"col":4,"index":4383},{"line":195,"col":38,"index":4417}],"478":[0,{"line":192,"col":2,"index":4332},{"line":195,"col":87,"index":4417}],"479":[0,{"line":197,"col":14,"index":4434},{"line":197,"col":14,"index":4434}],"480":[0,{"line":197,"col":19,"index":4439},{"line":197,"col":19,"index":4439}],"481":[0,{"line":197,"col":24,"index":4444},{"line":197,"col":25,"index":4445}],"482":[0,{"line":197,"col":19,"index":4439},{"line":197,"col":25,"index":4445}],"483":[0,{"line":197,"col":2,"index":4422},{"line":197,"col":25,"index":4445}],"484":[0,{"line":197,"col":2,"index":4422},{"line":197,"col":25,"index":4445}],"485":[0,{"line":200,"col":19,"index":4493},{"line":200,"col":19,"index":4493}],"486":[0,{"line":200,"col":24,"index":4498},{"line":200,"col":28,"index":4502}],"487":[0,{"line":200,"col":19,"index":4493},{"line":200,"col":29,"index":4503}],"488":[0,{"line":200,"col":2,"index":4476},{"line":200,"col":29,"index":4503}],"489":[0,{"line":201,"col":23,"index":4528},{"line":201,"col":27,"index":4532}],"490":[0,{"line":201,"col":38,"index":4543},{"line":201,"col":42,"index":4547}],"491":[0,{"line":201,"col":23,"index":4528},{"line":201,"col":43,"index":4548}],"492":[0,{"line":201,"col":2,"index":4507},{"line":201,"col":43,"index":4548}],"493":[0,{"line":202,"col":22,"index":4572},{"line":202,"col":22,"index":4572}],"494":[0,{"line":202,"col":18,"index":4568},{"line":202,"col":23,"index":4573}],"495":[0,{"line":202,"col":41,"index":4591},{"line":202,"col":41,"index":4591}],"496":[0,{"line":202,"col":43,"index":4593},{"line":202,"col":43,"index":4593}],"497":[0,{"line":202,"col":45,"index":4595},{"line":202,"col":45,"index":4595}],"498":[0,{"line":202,"col":37,"index":4587},{"line":202,"col":46,"index":4596}],"499":[0,{"line":202,"col":28,"index":4578},{"line":202,"col":47,"index":4597}],"500":[0,{"line":202,"col":18,"index":4568},{"line":202,"col":48,"index":4598}],"501":[0,{"line":202,"col":2,"index":4552},{"line":202,"col":48,"index":4598}],"502":[0,{"line":205,"col":18,"index":4648},{"line":205,"col":18,"index":4648}],"503":[0,{"line":205,"col":21,"index":4651},{"line":205,"col":21,"index":4651}],"504":[0,{"line":205,"col":14,"index":4644},{"line":205,"col":22,"index":4652}],"505":[0,{"line":205,"col":37,"index":4667},{"line":205,"col":37,"index":4667}],"506":[0,{"line":205,"col":14,"index":4644},{"line":205,"col":38,"index":4668}],"507":[0,{"line":205,"col":2,"index":4632},{"line":205,"col":38,"index":4668}],"508":[0,{"line":208,"col":20,"index":4715},{"line":208,"col":20,"index":4715}],"509":[0,{"line":208,"col":24,"index":4719},{"line":208,"col":24,"index":4719}],"510":[0,{"line":208,"col":20,"index":4715},{"line":208,"col":24,"index":4719}],"511":[0,{"line":208,"col":2,"index":4697},{"line":208,"col":24,"index":4719}],"512":[0,{"line":210,"col":13,"index":4763},{"line":210,"col":13,"index":4763}],"513":[0,{"line":210,"col":18,"index":4768},{"line":210,"col":18,"index":4768}],"514":[0,{"line":210,"col":13,"index":4763},{"line":210,"col":18,"index":4768}],"515":[0,{"line":210,"col":2,"index":4752},{"line":210,"col":18,"index":4768}],"516":[0,{"line":213,"col":2,"index":4786},{"line":213,"col":14,"index":4798}],"517":[0,{"line":214,"col":2,"index":4802},{"line":214,"col":12,"index":4812}],"518":[0,{"line":217,"col":21,"index":4850},{"line":217,"col":23,"index":4852}],"519":[0,{"line":217,"col":17,"index":4846},{"line":217,"col":24,"index":4853}],"520":[0,{"line":217,"col":2,"index":4831},{"line":217,"col":24,"index":4853}],"521":[0,{"line":219,"col":2,"index":4858},{"line":219,"col":24,"index":4880}],"522":[0,{"line":221,"col":10,"index":4893},{"line":221,"col":16,"index":4899}],"523":[0,{"line":221,"col":2,"index":4885},{"line":221,"col":16,"index":4899}],"524":[0,{"line":229,"col":19,"index":5120},{"line":229,"col":19,"index":5120}],"525":[0,{"line":229,"col":15,"index":5116},{"line":229,"col":15,"index":5116}],"526":[0,{"line":229,"col":2,"index":5103},{"line":229,"col":29,"index":5130}],"527":[0,{"line":14,"col":0,"index":140},{"line":233,"col":5069,"index":5209}]}} \ No newline at end of file diff --git a/quint/testFixture/SuperSpec.qnt b/quint/testFixture/SuperSpec.qnt index 5a2774d40..d01e58948 100644 --- a/quint/testFixture/SuperSpec.qnt +++ b/quint/testFixture/SuperSpec.qnt @@ -174,7 +174,8 @@ module withConsts { // Data structures val test_tuple = (1, 2, 3) - val test_tuple2 = Tup(1, 2, 3) + // "Tup" is not supported anymore + // val test_tuple2 = Tup(1, 2, 3) val test_pair = 4 -> 5 val test_list = [1, 2, 3] val test_list2 = List(1, 2, 3) @@ -190,7 +191,8 @@ module withConsts { my_rec.a val tup_elem = - val my_tup = Tup("a", 3) + // val my_tup = Tup("a", 3) + val my_tup = ("a", 3) my_tup._2 def isEmpty(s) = s == [] diff --git a/quint/testFixture/_1043sumTypeDecl.json b/quint/testFixture/_1043sumTypeDecl.json index a160f1be9..8df8d26b3 100644 --- a/quint/testFixture/_1043sumTypeDecl.json +++ b/quint/testFixture/_1043sumTypeDecl.json @@ -1 +1 @@ -{"stage":"parsing","warnings":[],"modules":[{"id":22,"name":"SumTypes","declarations":[{"id":3,"kind":"typedef","name":"T","type":{"id":3,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}}],"other":{"kind":"empty"}}},"depth":0},{"id":14,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":4,"kind":"const","name":"T"}},"expr":{"id":13,"kind":"lambda","params":[{"id":10,"name":"__BParam"}],"qualifier":"def","expr":{"id":12,"kind":"app","opcode":"variant","args":[{"id":9,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":11}]}}},{"id":8,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":4,"kind":"const","name":"T"},"expr":{"id":7,"kind":"app","opcode":"variant","args":[{"id":5,"kind":"str","value":"A"},{"id":6,"kind":"app","opcode":"Tup","args":[]}]}},{"id":21,"kind":"def","name":"canConstructVariants","qualifier":"val","expr":{"id":20,"kind":"app","opcode":"List","args":[{"id":17,"kind":"name","name":"A"},{"id":19,"kind":"app","opcode":"B","args":[{"id":18,"kind":"int","value":2}]}]},"typeAnnotation":{"id":16,"kind":"list","elem":{"id":15,"kind":"const","name":"T"}}}]}],"table":{"4":{"id":3,"kind":"typedef","name":"T","type":{"id":3,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}}],"other":{"kind":"empty"}}},"depth":0},"8":{"id":8,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":4,"kind":"const","name":"T"},"expr":{"id":7,"kind":"app","opcode":"variant","args":[{"id":5,"kind":"str","value":"A"},{"id":6,"kind":"app","opcode":"Tup","args":[]}]},"depth":0},"11":{"id":10,"name":"__BParam","kind":"param","depth":1},"14":{"id":14,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":4,"kind":"const","name":"T"}},"expr":{"id":13,"kind":"lambda","params":[{"id":10,"name":"__BParam"}],"qualifier":"def","expr":{"id":12,"kind":"app","opcode":"variant","args":[{"id":9,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":11}]}},"depth":0},"15":{"id":3,"kind":"typedef","name":"T","type":{"id":3,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}}],"other":{"kind":"empty"}}},"depth":0},"17":{"id":8,"kind":"def","name":"A","qualifier":"val","expr":{"id":7,"kind":"app","opcode":"variant","args":[{"id":5,"kind":"str","value":"A"},{"id":6,"kind":"app","opcode":"Tup","args":[]}]},"depth":0},"19":{"id":14,"kind":"def","name":"B","qualifier":"def","expr":{"id":13,"kind":"lambda","params":[{"id":10,"name":"__BParam"}],"qualifier":"def","expr":{"id":12,"kind":"app","opcode":"variant","args":[{"id":9,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":11}]}},"depth":0},"21":{"id":21,"kind":"def","name":"canConstructVariants","qualifier":"val","expr":{"id":20,"kind":"app","opcode":"List","args":[{"id":17,"kind":"name","name":"A"},{"id":19,"kind":"app","opcode":"B","args":[{"id":18,"kind":"int","value":2}]}]},"typeAnnotation":{"id":16,"kind":"list","elem":{"id":15,"kind":"const","name":"T"}},"depth":0}},"errors":[]} \ No newline at end of file +{"stage":"parsing","warnings":[],"modules":[{"id":22,"name":"SumTypes","declarations":[{"id":3,"kind":"typedef","name":"T","type":{"id":3,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}}],"other":{"kind":"empty"}}},"depth":0},{"id":14,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":4,"kind":"const","name":"T"}},"expr":{"id":13,"kind":"lambda","params":[{"id":10,"name":"__BParam"}],"qualifier":"def","expr":{"id":12,"kind":"app","opcode":"variant","args":[{"id":9,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":11}]}}},{"id":8,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":4,"kind":"const","name":"T"},"expr":{"id":7,"kind":"app","opcode":"variant","args":[{"id":5,"kind":"str","value":"A"},{"id":6,"kind":"tuple","elements":[]}]}},{"id":21,"kind":"def","name":"canConstructVariants","qualifier":"val","expr":{"id":20,"kind":"app","opcode":"List","args":[{"id":17,"kind":"name","name":"A"},{"id":19,"kind":"app","opcode":"B","args":[{"id":18,"kind":"int","value":2}]}]},"typeAnnotation":{"id":16,"kind":"list","elem":{"id":15,"kind":"const","name":"T"}}}]}],"table":{"4":{"id":3,"kind":"typedef","name":"T","type":{"id":3,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}}],"other":{"kind":"empty"}}},"depth":0},"8":{"id":8,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":4,"kind":"const","name":"T"},"expr":{"id":7,"kind":"app","opcode":"variant","args":[{"id":5,"kind":"str","value":"A"},{"id":6,"kind":"tuple","elements":[]}]},"depth":0},"11":{"id":10,"name":"__BParam","kind":"param","depth":1},"14":{"id":14,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":4,"kind":"const","name":"T"}},"expr":{"id":13,"kind":"lambda","params":[{"id":10,"name":"__BParam"}],"qualifier":"def","expr":{"id":12,"kind":"app","opcode":"variant","args":[{"id":9,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":11}]}},"depth":0},"15":{"id":3,"kind":"typedef","name":"T","type":{"id":3,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}}],"other":{"kind":"empty"}}},"depth":0},"17":{"id":8,"kind":"def","name":"A","qualifier":"val","expr":{"id":7,"kind":"app","opcode":"variant","args":[{"id":5,"kind":"str","value":"A"},{"id":6,"kind":"tuple","elements":[]}]},"depth":0},"19":{"id":14,"kind":"def","name":"B","qualifier":"def","expr":{"id":13,"kind":"lambda","params":[{"id":10,"name":"__BParam"}],"qualifier":"def","expr":{"id":12,"kind":"app","opcode":"variant","args":[{"id":9,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":11}]}},"depth":0},"21":{"id":21,"kind":"def","name":"canConstructVariants","qualifier":"val","expr":{"id":20,"kind":"app","opcode":"List","args":[{"id":17,"kind":"name","name":"A"},{"id":19,"kind":"app","opcode":"B","args":[{"id":18,"kind":"int","value":2}]}]},"typeAnnotation":{"id":16,"kind":"list","elem":{"id":15,"kind":"const","name":"T"}},"depth":0}},"errors":[]} \ No newline at end of file diff --git a/quint/testFixture/_1044matchExpression.json b/quint/testFixture/_1044matchExpression.json index 24ade9562..9dfdcf253 100644 --- a/quint/testFixture/_1044matchExpression.json +++ b/quint/testFixture/_1044matchExpression.json @@ -1 +1 @@ -{"stage":"parsing","warnings":[],"modules":[{"id":41,"name":"SumTypes","declarations":[{"id":4,"kind":"typedef","name":"T","type":{"id":4,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}},{"fieldName":"C","fieldType":{"id":3,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},{"id":15,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":14,"kind":"lambda","params":[{"id":11,"name":"__BParam"}],"qualifier":"def","expr":{"id":13,"kind":"app","opcode":"variant","args":[{"id":10,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":12}]}}},{"id":21,"kind":"def","name":"C","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":3,"kind":"str"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":20,"kind":"lambda","params":[{"id":17,"name":"__CParam"}],"qualifier":"def","expr":{"id":19,"kind":"app","opcode":"variant","args":[{"id":16,"kind":"str","value":"C"},{"kind":"name","name":"__CParam","id":18}]}}},{"id":9,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":5,"kind":"const","name":"T"},"expr":{"id":8,"kind":"app","opcode":"variant","args":[{"id":6,"kind":"str","value":"A"},{"id":7,"kind":"app","opcode":"Tup","args":[]}]}},{"id":24,"kind":"def","name":"c","qualifier":"val","expr":{"id":23,"kind":"app","opcode":"C","args":[{"id":22,"kind":"str","value":"Foo"}]}},{"id":40,"kind":"def","name":"ex","qualifier":"val","expr":{"id":30,"kind":"app","opcode":"matchVariant","args":[{"id":25,"kind":"name","name":"c"},{"id":31,"kind":"str","value":"A"},{"id":32,"kind":"lambda","qualifier":"def","expr":{"id":26,"kind":"int","value":0},"params":[{"name":"_","id":33}]},{"id":34,"kind":"str","value":"B"},{"id":35,"kind":"lambda","qualifier":"def","expr":{"id":27,"kind":"name","name":"n"},"params":[{"name":"n","id":36}]},{"id":37,"kind":"str","value":"_"},{"id":38,"kind":"lambda","qualifier":"def","expr":{"id":29,"kind":"app","opcode":"iuminus","args":[{"id":28,"kind":"int","value":1}]},"params":[{"name":"_","id":39}]}]}}]}],"table":{"5":{"id":4,"kind":"typedef","name":"T","type":{"id":4,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}},{"fieldName":"C","fieldType":{"id":3,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},"9":{"id":9,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":5,"kind":"const","name":"T"},"expr":{"id":8,"kind":"app","opcode":"variant","args":[{"id":6,"kind":"str","value":"A"},{"id":7,"kind":"app","opcode":"Tup","args":[]}]},"depth":0},"12":{"id":11,"name":"__BParam","kind":"param","depth":1},"15":{"id":15,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":14,"kind":"lambda","params":[{"id":11,"name":"__BParam"}],"qualifier":"def","expr":{"id":13,"kind":"app","opcode":"variant","args":[{"id":10,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":12}]}},"depth":0},"18":{"id":17,"name":"__CParam","kind":"param","depth":1},"21":{"id":21,"kind":"def","name":"C","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":3,"kind":"str"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":20,"kind":"lambda","params":[{"id":17,"name":"__CParam"}],"qualifier":"def","expr":{"id":19,"kind":"app","opcode":"variant","args":[{"id":16,"kind":"str","value":"C"},{"kind":"name","name":"__CParam","id":18}]}},"depth":0},"23":{"id":21,"kind":"def","name":"C","qualifier":"def","expr":{"id":20,"kind":"lambda","params":[{"id":17,"name":"__CParam"}],"qualifier":"def","expr":{"id":19,"kind":"app","opcode":"variant","args":[{"id":16,"kind":"str","value":"C"},{"kind":"name","name":"__CParam","id":18}]}},"depth":0},"24":{"id":24,"kind":"def","name":"c","qualifier":"val","expr":{"id":23,"kind":"app","opcode":"C","args":[{"id":22,"kind":"str","value":"Foo"}]},"depth":0},"25":{"id":24,"kind":"def","name":"c","qualifier":"val","expr":{"id":23,"kind":"app","opcode":"C","args":[{"id":22,"kind":"str","value":"Foo"}]},"depth":0},"27":{"name":"n","id":36,"kind":"param","depth":1},"40":{"id":40,"kind":"def","name":"ex","qualifier":"val","expr":{"id":30,"kind":"app","opcode":"matchVariant","args":[{"id":25,"kind":"name","name":"c"},{"id":31,"kind":"str","value":"A"},{"id":32,"kind":"lambda","qualifier":"def","expr":{"id":26,"kind":"int","value":0},"params":[{"name":"_","id":33}]},{"id":34,"kind":"str","value":"B"},{"id":35,"kind":"lambda","qualifier":"def","expr":{"id":27,"kind":"name","name":"n"},"params":[{"name":"n","id":36}]},{"id":37,"kind":"str","value":"_"},{"id":38,"kind":"lambda","qualifier":"def","expr":{"id":29,"kind":"app","opcode":"iuminus","args":[{"id":28,"kind":"int","value":1}]},"params":[{"name":"_","id":39}]}]},"depth":0}},"errors":[]} \ No newline at end of file +{"stage":"parsing","warnings":[],"modules":[{"id":41,"name":"SumTypes","declarations":[{"id":4,"kind":"typedef","name":"T","type":{"id":4,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}},{"fieldName":"C","fieldType":{"id":3,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},{"id":15,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":14,"kind":"lambda","params":[{"id":11,"name":"__BParam"}],"qualifier":"def","expr":{"id":13,"kind":"app","opcode":"variant","args":[{"id":10,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":12}]}}},{"id":21,"kind":"def","name":"C","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":3,"kind":"str"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":20,"kind":"lambda","params":[{"id":17,"name":"__CParam"}],"qualifier":"def","expr":{"id":19,"kind":"app","opcode":"variant","args":[{"id":16,"kind":"str","value":"C"},{"kind":"name","name":"__CParam","id":18}]}}},{"id":9,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":5,"kind":"const","name":"T"},"expr":{"id":8,"kind":"app","opcode":"variant","args":[{"id":6,"kind":"str","value":"A"},{"id":7,"kind":"tuple","elements":[]}]}},{"id":24,"kind":"def","name":"c","qualifier":"val","expr":{"id":23,"kind":"app","opcode":"C","args":[{"id":22,"kind":"str","value":"Foo"}]}},{"id":40,"kind":"def","name":"ex","qualifier":"val","expr":{"id":30,"kind":"app","opcode":"matchVariant","args":[{"id":25,"kind":"name","name":"c"},{"id":31,"kind":"str","value":"A"},{"id":32,"kind":"lambda","qualifier":"def","expr":{"id":26,"kind":"int","value":0},"params":[{"name":"_","id":33}]},{"id":34,"kind":"str","value":"B"},{"id":35,"kind":"lambda","qualifier":"def","expr":{"id":27,"kind":"name","name":"n"},"params":[{"name":"n","id":36}]},{"id":37,"kind":"str","value":"_"},{"id":38,"kind":"lambda","qualifier":"def","expr":{"id":29,"kind":"app","opcode":"iuminus","args":[{"id":28,"kind":"int","value":1}]},"params":[{"name":"_","id":39}]}]}}]}],"table":{"5":{"id":4,"kind":"typedef","name":"T","type":{"id":4,"kind":"sum","fields":{"kind":"row","fields":[{"fieldName":"A","fieldType":{"id":1,"kind":"tup","fields":{"kind":"row","fields":[],"other":{"kind":"empty"}}}},{"fieldName":"B","fieldType":{"id":2,"kind":"int"}},{"fieldName":"C","fieldType":{"id":3,"kind":"str"}}],"other":{"kind":"empty"}}},"depth":0},"9":{"id":9,"kind":"def","name":"A","qualifier":"val","typeAnnotation":{"id":5,"kind":"const","name":"T"},"expr":{"id":8,"kind":"app","opcode":"variant","args":[{"id":6,"kind":"str","value":"A"},{"id":7,"kind":"tuple","elements":[]}]},"depth":0},"12":{"id":11,"name":"__BParam","kind":"param","depth":1},"15":{"id":15,"kind":"def","name":"B","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":2,"kind":"int"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":14,"kind":"lambda","params":[{"id":11,"name":"__BParam"}],"qualifier":"def","expr":{"id":13,"kind":"app","opcode":"variant","args":[{"id":10,"kind":"str","value":"B"},{"kind":"name","name":"__BParam","id":12}]}},"depth":0},"18":{"id":17,"name":"__CParam","kind":"param","depth":1},"21":{"id":21,"kind":"def","name":"C","qualifier":"def","typeAnnotation":{"kind":"oper","args":[{"id":3,"kind":"str"}],"res":{"id":5,"kind":"const","name":"T"}},"expr":{"id":20,"kind":"lambda","params":[{"id":17,"name":"__CParam"}],"qualifier":"def","expr":{"id":19,"kind":"app","opcode":"variant","args":[{"id":16,"kind":"str","value":"C"},{"kind":"name","name":"__CParam","id":18}]}},"depth":0},"23":{"id":21,"kind":"def","name":"C","qualifier":"def","expr":{"id":20,"kind":"lambda","params":[{"id":17,"name":"__CParam"}],"qualifier":"def","expr":{"id":19,"kind":"app","opcode":"variant","args":[{"id":16,"kind":"str","value":"C"},{"kind":"name","name":"__CParam","id":18}]}},"depth":0},"24":{"id":24,"kind":"def","name":"c","qualifier":"val","expr":{"id":23,"kind":"app","opcode":"C","args":[{"id":22,"kind":"str","value":"Foo"}]},"depth":0},"25":{"id":24,"kind":"def","name":"c","qualifier":"val","expr":{"id":23,"kind":"app","opcode":"C","args":[{"id":22,"kind":"str","value":"Foo"}]},"depth":0},"27":{"name":"n","id":36,"kind":"param","depth":1},"40":{"id":40,"kind":"def","name":"ex","qualifier":"val","expr":{"id":30,"kind":"app","opcode":"matchVariant","args":[{"id":25,"kind":"name","name":"c"},{"id":31,"kind":"str","value":"A"},{"id":32,"kind":"lambda","qualifier":"def","expr":{"id":26,"kind":"int","value":0},"params":[{"name":"_","id":33}]},{"id":34,"kind":"str","value":"B"},{"id":35,"kind":"lambda","qualifier":"def","expr":{"id":27,"kind":"name","name":"n"},"params":[{"name":"n","id":36}]},{"id":37,"kind":"str","value":"_"},{"id":38,"kind":"lambda","qualifier":"def","expr":{"id":29,"kind":"app","opcode":"iuminus","args":[{"id":28,"kind":"int","value":1}]},"params":[{"name":"_","id":39}]}]},"depth":0}},"errors":[]} \ No newline at end of file From 29ca7ee5172d2f4792e2513b58adf053febf45a6 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Sun, 29 Sep 2024 21:56:27 -0400 Subject: [PATCH 03/14] Update README.md From d57a5261d255be55babe4dc97e68adcd7f58a48c Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Sun, 29 Sep 2024 23:37:16 -0400 Subject: [PATCH 04/14] Update README.md --- examples/README.md | 112 ++++++++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 48 deletions(-) diff --git a/examples/README.md b/examples/README.md index 7835502ad..acabb5048 100644 --- a/examples/README.md +++ b/examples/README.md @@ -51,54 +51,70 @@ listed without any additional command line arguments. | [classic/distributed/ClockSync/clockSync3.qnt](./classic/distributed/ClockSync/clockSync3.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [classic/distributed/ewd840/ewd840.qnt](./classic/distributed/ewd840/ewd840.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [classic/distributed/LamportMutex/LamportMutex.qnt](./classic/distributed/LamportMutex/LamportMutex.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [classic/distributed/Paxos/Paxos.qnt](./classic/distributed/Paxos/Paxos.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1284 | -| [classic/distributed/Paxos/Voting.qnt](./classic/distributed/Paxos/Voting.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | -| [classic/distributed/ReadersWriters/ReadersWriters.qnt](./classic/distributed/ReadersWriters/ReadersWriters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [classic/distributed/TeachingConcurrency/teachingConcurrency.qnt](./classic/distributed/TeachingConcurrency/teachingConcurrency.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [classic/distributed/TwoPhaseCommit/two_phase_commit.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt) | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1299 | :x:https://github.com/informalsystems/quint/issues/1299 | -| [classic/sequential/BinSearch/BinSearch.qnt](./classic/sequential/BinSearch/BinSearch.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/bank/bank.qnt](./cosmos/bank/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | -| [cosmos/bank/bankTest.qnt](./cosmos/bank/bankTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/ics20/bank.qnt](./cosmos/ics20/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/ics20/base.qnt](./cosmos/ics20/base.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | -| [cosmos/ics20/denomTrace.qnt](./cosmos/ics20/denomTrace.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/ics20/ics20.qnt](./cosmos/ics20/ics20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/ics23/ics23.qnt](./cosmos/ics23/ics23.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/lightclient/Blockchain.qnt](./cosmos/lightclient/Blockchain.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | -| [cosmos/lightclient/LCVerificationApi.qnt](./cosmos/lightclient/LCVerificationApi.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | -| [cosmos/lightclient/Lightclient.qnt](./cosmos/lightclient/Lightclient.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/lightclient/typedefs.qnt](./cosmos/lightclient/typedefs.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | -| [cosmos/tendermint/Tendermint.qnt](./cosmos/tendermint/Tendermint.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | -| [cosmos/tendermint/TendermintModels.qnt](./cosmos/tendermint/TendermintModels.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cosmos/tendermint/TendermintTest.qnt](./cosmos/tendermint/TendermintTest.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | -| [cosmwasm/zero-to-hero/vote.qnt](./cosmwasm/zero-to-hero/vote.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [cryptography/hashes.qnt](./cryptography/hashes.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | -| [cryptography/hashesTest.qnt](./cryptography/hashesTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | -| [games/mafia_werewolf/play_mafia.qnt](./games/mafia_werewolf/play_mafia.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [games/rock_paper_scissors/play_rock_paper_scissors.qnt](./games/rock_paper_scissors/play_rock_paper_scissors.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [games/secret-santa/secret_santa.qnt](./games/secret-santa/secret_santa.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [games/tictactoe/tictactoe.qnt](./games/tictactoe/tictactoe.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/booleans.qnt](./language-features/booleans.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/counters.qnt](./language-features/counters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/importFrom.qnt](./language-features/importFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/imports.qnt](./language-features/imports.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/instances.qnt](./language-features/instances.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/instancesFrom.qnt](./language-features/instancesFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/integers.qnt](./language-features/integers.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/lists.qnt](./language-features/lists.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/maps.qnt](./language-features/maps.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/nondetEx.qnt](./language-features/nondetEx.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/option.qnt](./language-features/option.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1393 | -| [language-features/records.qnt](./language-features/records.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/sets.qnt](./language-features/sets.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [language-features/tuples.qnt](./language-features/tuples.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [puzzles/prisoners/prisoners.qnt](./puzzles/prisoners/prisoners.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [puzzles/river/river.qnt](./puzzles/river/river.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [solidity/ERC20/erc20.qnt](./solidity/ERC20/erc20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [solidity/GradualPonzi/gradualPonzi.qnt](./solidity/GradualPonzi/gradualPonzi.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| [solidity/icse23-fig7/lottery.qnt](./solidity/icse23-fig7/lottery.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1285 | -| [solidity/SimpleAuction/SimpleAuction.qnt](./solidity/SimpleAuction/SimpleAuction.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | + | [classic/distributed/Paxos/Paxos.qnt](./classic/distributed/Paxos/Paxos.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1284 | + | [classic/distributed/Paxos/Voting.qnt](./classic/distributed/Paxos/Voting.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +-| [classic/distributed/ReadersWriters/ReadersWriters.qnt](./classic/distributed/ReadersWriters/ReadersWriters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [classic/distributed/ReadersWriters/ReadersWriters.qnt](./classic/distributed/ReadersWriters/ReadersWriters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [classic/distributed/TeachingConcurrency/teachingConcurrency.qnt](./classic/distributed/TeachingConcurrency/teachingConcurrency.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [classic/distributed/TwoPhaseCommit/two_phase_commit.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [classic/distributed/TwoPhaseCommit/two_phase_commit.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt) | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1299 | :x:https://github.com/informalsystems/quint/issues/1299 | + | [classic/sequential/BinSearch/BinSearch.qnt](./classic/sequential/BinSearch/BinSearch.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [cosmos/bank/bank.qnt](./cosmos/bank/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +-| [cosmos/bank/bankTest.qnt](./cosmos/bank/bankTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [cosmos/ics20/bank.qnt](./cosmos/ics20/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [cosmos/bank/bankTest.qnt](./cosmos/bank/bankTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | ++| [cosmos/ics20/bank.qnt](./cosmos/ics20/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [cosmos/ics20/base.qnt](./cosmos/ics20/base.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +-| [cosmos/ics20/denomTrace.qnt](./cosmos/ics20/denomTrace.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [cosmos/ics20/ics20.qnt](./cosmos/ics20/ics20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [cosmos/ics23/ics23.qnt](./cosmos/ics23/ics23.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [cosmos/ics20/denomTrace.qnt](./cosmos/ics20/denomTrace.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | ++| [cosmos/ics20/ics20.qnt](./cosmos/ics20/ics20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | ++| [cosmos/ics23/ics23.qnt](./cosmos/ics23/ics23.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [cosmos/lightclient/Blockchain.qnt](./cosmos/lightclient/Blockchain.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | + | [cosmos/lightclient/LCVerificationApi.qnt](./cosmos/lightclient/LCVerificationApi.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +-| [cosmos/lightclient/Lightclient.qnt](./cosmos/lightclient/Lightclient.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [cosmos/lightclient/Lightclient.qnt](./cosmos/lightclient/Lightclient.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [cosmos/lightclient/typedefs.qnt](./cosmos/lightclient/typedefs.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | + | [cosmos/tendermint/Tendermint.qnt](./cosmos/tendermint/Tendermint.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +-| [cosmos/tendermint/TendermintModels.qnt](./cosmos/tendermint/TendermintModels.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [cosmos/tendermint/TendermintModels.qnt](./cosmos/tendermint/TendermintModels.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [cosmos/tendermint/TendermintTest.qnt](./cosmos/tendermint/TendermintTest.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +-| [cosmwasm/zero-to-hero/vote.qnt](./cosmwasm/zero-to-hero/vote.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [cosmwasm/zero-to-hero/vote.qnt](./cosmwasm/zero-to-hero/vote.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [cryptography/hashes.qnt](./cryptography/hashes.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | + | [cryptography/hashesTest.qnt](./cryptography/hashesTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +-| [games/mafia_werewolf/play_mafia.qnt](./games/mafia_werewolf/play_mafia.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [games/rock_paper_scissors/play_rock_paper_scissors.qnt](./games/rock_paper_scissors/play_rock_paper_scissors.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [games/secret-santa/secret_santa.qnt](./games/secret-santa/secret_santa.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [games/tictactoe/tictactoe.qnt](./games/tictactoe/tictactoe.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [games/mafia_werewolf/play_mafia.qnt](./games/mafia_werewolf/play_mafia.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | ++| [games/rock_paper_scissors/play_rock_paper_scissors.qnt](./games/rock_paper_scissors/play_rock_paper_scissors.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | ++| [games/secret-santa/secret_santa.qnt](./games/secret-santa/secret_santa.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | ++| [games/tictactoe/tictactoe.qnt](./games/tictactoe/tictactoe.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [language-features/booleans.qnt](./language-features/booleans.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [language-features/counters.qnt](./language-features/counters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [language-features/importFrom.qnt](./language-features/importFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +@@ -87,15 +87,15 @@ listed without any additional command line arguments. + | [language-features/instancesFrom.qnt](./language-features/instancesFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [language-features/integers.qnt](./language-features/integers.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [language-features/lists.qnt](./language-features/lists.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [language-features/maps.qnt](./language-features/maps.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [language-features/maps.qnt](./language-features/maps.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [language-features/nondetEx.qnt](./language-features/nondetEx.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [language-features/option.qnt](./language-features/option.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1393 | + | [language-features/records.qnt](./language-features/records.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [language-features/sets.qnt](./language-features/sets.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [language-features/tuples.qnt](./language-features/tuples.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [language-features/tuples.qnt](./language-features/tuples.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [puzzles/prisoners/prisoners.qnt](./puzzles/prisoners/prisoners.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [puzzles/river/river.qnt](./puzzles/river/river.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +-| [solidity/ERC20/erc20.qnt](./solidity/ERC20/erc20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ++| [solidity/ERC20/erc20.qnt](./solidity/ERC20/erc20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | + | [solidity/GradualPonzi/gradualPonzi.qnt](./solidity/GradualPonzi/gradualPonzi.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | + | [solidity/icse23-fig7/lottery.qnt](./solidity/icse23-fig7/lottery.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1285 | + | [solidity/SimpleAuction/SimpleAuction.qnt](./solidity/SimpleAuction/SimpleAuction.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | | [solidity/SimplePonzi/simplePonzi.qnt](./solidity/SimplePonzi/simplePonzi.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [spells/basicSpells.qnt](./spells/basicSpells.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | | [spells/BoundedUInt.qnt](./spells/BoundedUInt.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | From d72c33b2eb9880e664e447d8e34f25afe204d1da Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Mon, 30 Sep 2024 15:13:01 -0400 Subject: [PATCH 05/14] Delete quint/SuperSpec.json --- quint/SuperSpec.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 quint/SuperSpec.json diff --git a/quint/SuperSpec.json b/quint/SuperSpec.json deleted file mode 100644 index 4c4dc6535..000000000 --- a/quint/SuperSpec.json +++ /dev/null @@ -1 +0,0 @@ -{"stage":"loading","errors":[]} \ No newline at end of file From 98dcce2c71e2f8460cd99257037c7a8e9fdb1984 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Mon, 30 Sep 2024 15:14:50 -0400 Subject: [PATCH 06/14] Update README.md --- examples/README.md | 112 +++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 64 deletions(-) diff --git a/examples/README.md b/examples/README.md index acabb5048..7835502ad 100644 --- a/examples/README.md +++ b/examples/README.md @@ -51,70 +51,54 @@ listed without any additional command line arguments. | [classic/distributed/ClockSync/clockSync3.qnt](./classic/distributed/ClockSync/clockSync3.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [classic/distributed/ewd840/ewd840.qnt](./classic/distributed/ewd840/ewd840.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [classic/distributed/LamportMutex/LamportMutex.qnt](./classic/distributed/LamportMutex/LamportMutex.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [classic/distributed/Paxos/Paxos.qnt](./classic/distributed/Paxos/Paxos.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1284 | - | [classic/distributed/Paxos/Voting.qnt](./classic/distributed/Paxos/Voting.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | --| [classic/distributed/ReadersWriters/ReadersWriters.qnt](./classic/distributed/ReadersWriters/ReadersWriters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [classic/distributed/ReadersWriters/ReadersWriters.qnt](./classic/distributed/ReadersWriters/ReadersWriters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [classic/distributed/TeachingConcurrency/teachingConcurrency.qnt](./classic/distributed/TeachingConcurrency/teachingConcurrency.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [classic/distributed/TwoPhaseCommit/two_phase_commit.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [classic/distributed/TwoPhaseCommit/two_phase_commit.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt) | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1299 | :x:https://github.com/informalsystems/quint/issues/1299 | - | [classic/sequential/BinSearch/BinSearch.qnt](./classic/sequential/BinSearch/BinSearch.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [cosmos/bank/bank.qnt](./cosmos/bank/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | --| [cosmos/bank/bankTest.qnt](./cosmos/bank/bankTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [cosmos/ics20/bank.qnt](./cosmos/ics20/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [cosmos/bank/bankTest.qnt](./cosmos/bank/bankTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | -+| [cosmos/ics20/bank.qnt](./cosmos/ics20/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [cosmos/ics20/base.qnt](./cosmos/ics20/base.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | --| [cosmos/ics20/denomTrace.qnt](./cosmos/ics20/denomTrace.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [cosmos/ics20/ics20.qnt](./cosmos/ics20/ics20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [cosmos/ics23/ics23.qnt](./cosmos/ics23/ics23.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [cosmos/ics20/denomTrace.qnt](./cosmos/ics20/denomTrace.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | -+| [cosmos/ics20/ics20.qnt](./cosmos/ics20/ics20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | -+| [cosmos/ics23/ics23.qnt](./cosmos/ics23/ics23.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [cosmos/lightclient/Blockchain.qnt](./cosmos/lightclient/Blockchain.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | - | [cosmos/lightclient/LCVerificationApi.qnt](./cosmos/lightclient/LCVerificationApi.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | --| [cosmos/lightclient/Lightclient.qnt](./cosmos/lightclient/Lightclient.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [cosmos/lightclient/Lightclient.qnt](./cosmos/lightclient/Lightclient.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [cosmos/lightclient/typedefs.qnt](./cosmos/lightclient/typedefs.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | - | [cosmos/tendermint/Tendermint.qnt](./cosmos/tendermint/Tendermint.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | --| [cosmos/tendermint/TendermintModels.qnt](./cosmos/tendermint/TendermintModels.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [cosmos/tendermint/TendermintModels.qnt](./cosmos/tendermint/TendermintModels.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [cosmos/tendermint/TendermintTest.qnt](./cosmos/tendermint/TendermintTest.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | --| [cosmwasm/zero-to-hero/vote.qnt](./cosmwasm/zero-to-hero/vote.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [cosmwasm/zero-to-hero/vote.qnt](./cosmwasm/zero-to-hero/vote.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [cryptography/hashes.qnt](./cryptography/hashes.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | - | [cryptography/hashesTest.qnt](./cryptography/hashesTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | --| [games/mafia_werewolf/play_mafia.qnt](./games/mafia_werewolf/play_mafia.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [games/rock_paper_scissors/play_rock_paper_scissors.qnt](./games/rock_paper_scissors/play_rock_paper_scissors.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [games/secret-santa/secret_santa.qnt](./games/secret-santa/secret_santa.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [games/tictactoe/tictactoe.qnt](./games/tictactoe/tictactoe.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [games/mafia_werewolf/play_mafia.qnt](./games/mafia_werewolf/play_mafia.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | -+| [games/rock_paper_scissors/play_rock_paper_scissors.qnt](./games/rock_paper_scissors/play_rock_paper_scissors.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | -+| [games/secret-santa/secret_santa.qnt](./games/secret-santa/secret_santa.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | -+| [games/tictactoe/tictactoe.qnt](./games/tictactoe/tictactoe.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [language-features/booleans.qnt](./language-features/booleans.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [language-features/counters.qnt](./language-features/counters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [language-features/importFrom.qnt](./language-features/importFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -@@ -87,15 +87,15 @@ listed without any additional command line arguments. - | [language-features/instancesFrom.qnt](./language-features/instancesFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [language-features/integers.qnt](./language-features/integers.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [language-features/lists.qnt](./language-features/lists.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [language-features/maps.qnt](./language-features/maps.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [language-features/maps.qnt](./language-features/maps.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [language-features/nondetEx.qnt](./language-features/nondetEx.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [language-features/option.qnt](./language-features/option.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1393 | - | [language-features/records.qnt](./language-features/records.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [language-features/sets.qnt](./language-features/sets.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [language-features/tuples.qnt](./language-features/tuples.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [language-features/tuples.qnt](./language-features/tuples.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [puzzles/prisoners/prisoners.qnt](./puzzles/prisoners/prisoners.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [puzzles/river/river.qnt](./puzzles/river/river.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | --| [solidity/ERC20/erc20.qnt](./solidity/ERC20/erc20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | -+| [solidity/ERC20/erc20.qnt](./solidity/ERC20/erc20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | - | [solidity/GradualPonzi/gradualPonzi.qnt](./solidity/GradualPonzi/gradualPonzi.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | - | [solidity/icse23-fig7/lottery.qnt](./solidity/icse23-fig7/lottery.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1285 | - | [solidity/SimpleAuction/SimpleAuction.qnt](./solidity/SimpleAuction/SimpleAuction.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +| [classic/distributed/Paxos/Paxos.qnt](./classic/distributed/Paxos/Paxos.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1284 | +| [classic/distributed/Paxos/Voting.qnt](./classic/distributed/Paxos/Voting.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +| [classic/distributed/ReadersWriters/ReadersWriters.qnt](./classic/distributed/ReadersWriters/ReadersWriters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [classic/distributed/TeachingConcurrency/teachingConcurrency.qnt](./classic/distributed/TeachingConcurrency/teachingConcurrency.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [classic/distributed/TwoPhaseCommit/two_phase_commit.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt](./classic/distributed/TwoPhaseCommit/two_phase_commit_modules.qnt) | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1299 | :x:https://github.com/informalsystems/quint/issues/1299 | +| [classic/sequential/BinSearch/BinSearch.qnt](./classic/sequential/BinSearch/BinSearch.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/bank/bank.qnt](./cosmos/bank/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +| [cosmos/bank/bankTest.qnt](./cosmos/bank/bankTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/ics20/bank.qnt](./cosmos/ics20/bank.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/ics20/base.qnt](./cosmos/ics20/base.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +| [cosmos/ics20/denomTrace.qnt](./cosmos/ics20/denomTrace.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/ics20/ics20.qnt](./cosmos/ics20/ics20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/ics23/ics23.qnt](./cosmos/ics23/ics23.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/lightclient/Blockchain.qnt](./cosmos/lightclient/Blockchain.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +| [cosmos/lightclient/LCVerificationApi.qnt](./cosmos/lightclient/LCVerificationApi.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +| [cosmos/lightclient/Lightclient.qnt](./cosmos/lightclient/Lightclient.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/lightclient/typedefs.qnt](./cosmos/lightclient/typedefs.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +| [cosmos/tendermint/Tendermint.qnt](./cosmos/tendermint/Tendermint.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +| [cosmos/tendermint/TendermintModels.qnt](./cosmos/tendermint/TendermintModels.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cosmos/tendermint/TendermintTest.qnt](./cosmos/tendermint/TendermintTest.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +| [cosmwasm/zero-to-hero/vote.qnt](./cosmwasm/zero-to-hero/vote.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [cryptography/hashes.qnt](./cryptography/hashes.qnt) | :white_check_mark: | :white_check_mark: | N/A[^parameterized] | N/A[^nostatemachine] | +| [cryptography/hashesTest.qnt](./cryptography/hashesTest.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | +| [games/mafia_werewolf/play_mafia.qnt](./games/mafia_werewolf/play_mafia.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [games/rock_paper_scissors/play_rock_paper_scissors.qnt](./games/rock_paper_scissors/play_rock_paper_scissors.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [games/secret-santa/secret_santa.qnt](./games/secret-santa/secret_santa.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [games/tictactoe/tictactoe.qnt](./games/tictactoe/tictactoe.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/booleans.qnt](./language-features/booleans.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/counters.qnt](./language-features/counters.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/importFrom.qnt](./language-features/importFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/imports.qnt](./language-features/imports.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/instances.qnt](./language-features/instances.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/instancesFrom.qnt](./language-features/instancesFrom.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/integers.qnt](./language-features/integers.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/lists.qnt](./language-features/lists.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/maps.qnt](./language-features/maps.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/nondetEx.qnt](./language-features/nondetEx.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/option.qnt](./language-features/option.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1393 | +| [language-features/records.qnt](./language-features/records.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/sets.qnt](./language-features/sets.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [language-features/tuples.qnt](./language-features/tuples.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [puzzles/prisoners/prisoners.qnt](./puzzles/prisoners/prisoners.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [puzzles/river/river.qnt](./puzzles/river/river.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [solidity/ERC20/erc20.qnt](./solidity/ERC20/erc20.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [solidity/GradualPonzi/gradualPonzi.qnt](./solidity/GradualPonzi/gradualPonzi.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [solidity/icse23-fig7/lottery.qnt](./solidity/icse23-fig7/lottery.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:https://github.com/informalsystems/quint/issues/1285 | +| [solidity/SimpleAuction/SimpleAuction.qnt](./solidity/SimpleAuction/SimpleAuction.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | | [solidity/SimplePonzi/simplePonzi.qnt](./solidity/SimplePonzi/simplePonzi.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | [spells/basicSpells.qnt](./spells/basicSpells.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | | [spells/BoundedUInt.qnt](./spells/BoundedUInt.qnt) | :white_check_mark: | :white_check_mark: | :white_check_mark: | N/A[^nostatemachine] | From efa6c18e86504b160d5a9a83a28efcd56a7cfb72 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:47:14 -0400 Subject: [PATCH 07/14] Update quint/src/ir/quintIr.ts Co-authored-by: Gabriela Moreira --- quint/src/ir/quintIr.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quint/src/ir/quintIr.ts b/quint/src/ir/quintIr.ts index 3ad25a849..c3c03ecda 100644 --- a/quint/src/ir/quintIr.ts +++ b/quint/src/ir/quintIr.ts @@ -109,9 +109,9 @@ export interface QuintApp extends WithId { } export interface QuintTup extends WithId { - /** Expressions kind ('bool' -- a boolean literal) */ + /** Expressions kind ('tuple' -- a collection where elements can have different types) */ kind: 'tuple' - /** A list of arguments to the operator */ + /** A list of elements of the tuple */ elements: QuintEx[] } From 13b2ae49e6740971eab1c752b631a21b178accd1 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:47:29 -0400 Subject: [PATCH 08/14] Update quint/src/runtime/impl/runtimeValue.ts Co-authored-by: Gabriela Moreira --- quint/src/runtime/impl/runtimeValue.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quint/src/runtime/impl/runtimeValue.ts b/quint/src/runtime/impl/runtimeValue.ts index b8ae2158c..e50072d4e 100644 --- a/quint/src/runtime/impl/runtimeValue.ts +++ b/quint/src/runtime/impl/runtimeValue.ts @@ -155,7 +155,7 @@ export const rv = { mkMap: (elems: Iterable<[RuntimeValue, RuntimeValue]>): RuntimeValue => { // convert the keys to the normal form, as they are hashed const arr: [RuntimeValue, RuntimeValue][] = Array.from(elems).map(([k, v]) => { - return [k.normalForm(), v] // Ensure normalForm works with tuples + return [k.normalForm(), v] }) return new RuntimeValueMap(ImmutableMap(arr)) }, From 3f2cdcdf15393230aa80a6df9b700c0ce8396fb9 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:47:48 -0400 Subject: [PATCH 09/14] Update quint/src/runtime/impl/runtimeValue.ts Co-authored-by: Gabriela Moreira --- quint/src/runtime/impl/runtimeValue.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/quint/src/runtime/impl/runtimeValue.ts b/quint/src/runtime/impl/runtimeValue.ts index e50072d4e..212f6a058 100644 --- a/quint/src/runtime/impl/runtimeValue.ts +++ b/quint/src/runtime/impl/runtimeValue.ts @@ -714,9 +714,6 @@ abstract class RuntimeValueBase implements RuntimeValue { if (this instanceof RuntimeValueStr && other instanceof RuntimeValueStr) { return this.value === other.value } - if (this instanceof RuntimeValueList && other instanceof RuntimeValueTuple) { - return false - } if (this instanceof RuntimeValueList && other instanceof RuntimeValueList) { return this.list.equals(other.list) } From aa351cb6342accd6cfbf22be2668fbb86b5d3881 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:48:04 -0400 Subject: [PATCH 10/14] Update quint/src/runtime/impl/runtimeValue.ts Co-authored-by: Gabriela Moreira --- quint/src/runtime/impl/runtimeValue.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quint/src/runtime/impl/runtimeValue.ts b/quint/src/runtime/impl/runtimeValue.ts index 212f6a058..998237811 100644 --- a/quint/src/runtime/impl/runtimeValue.ts +++ b/quint/src/runtime/impl/runtimeValue.ts @@ -903,7 +903,7 @@ class RuntimeValueTuple extends RuntimeValueBase implements RuntimeValue { return { id: gen.nextId(), kind: 'tuple', - elements: elems, // Adjusted to reflect the new tuple structure + elements: elems, } } } From 613912c81c51e6fbd507ff8f231164eebcb09d3f Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:49:59 -0400 Subject: [PATCH 11/14] Update quint/testFixture/SuperSpec.qnt Co-authored-by: Gabriela Moreira --- quint/testFixture/SuperSpec.qnt | 2 -- 1 file changed, 2 deletions(-) diff --git a/quint/testFixture/SuperSpec.qnt b/quint/testFixture/SuperSpec.qnt index d01e58948..70a391485 100644 --- a/quint/testFixture/SuperSpec.qnt +++ b/quint/testFixture/SuperSpec.qnt @@ -174,8 +174,6 @@ module withConsts { // Data structures val test_tuple = (1, 2, 3) - // "Tup" is not supported anymore - // val test_tuple2 = Tup(1, 2, 3) val test_pair = 4 -> 5 val test_list = [1, 2, 3] val test_list2 = List(1, 2, 3) From a0522082462ee7c2ad86203ee49d0bf8bd9c74b4 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:50:10 -0400 Subject: [PATCH 12/14] Update quint/testFixture/SuperSpec.qnt Co-authored-by: Gabriela Moreira --- quint/testFixture/SuperSpec.qnt | 1 - 1 file changed, 1 deletion(-) diff --git a/quint/testFixture/SuperSpec.qnt b/quint/testFixture/SuperSpec.qnt index 70a391485..0c18ab61e 100644 --- a/quint/testFixture/SuperSpec.qnt +++ b/quint/testFixture/SuperSpec.qnt @@ -189,7 +189,6 @@ module withConsts { my_rec.a val tup_elem = - // val my_tup = Tup("a", 3) val my_tup = ("a", 3) my_tup._2 From 951e685b9825ceed45f5a75b10edb9e91e541bca Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:50:25 -0400 Subject: [PATCH 13/14] Update quint/src/ir/IRTransformer.ts Co-authored-by: Gabriela Moreira --- quint/src/ir/IRTransformer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quint/src/ir/IRTransformer.ts b/quint/src/ir/IRTransformer.ts index c78587452..c34dc564e 100644 --- a/quint/src/ir/IRTransformer.ts +++ b/quint/src/ir/IRTransformer.ts @@ -524,7 +524,7 @@ function transformExpression(transformer: IRTransformer, expr: ir.QuintEx): ir.Q } break - case 'tuple': // Add this case for tuple + case 'tuple': if (transformer.enterTuple) { newExpr = transformer.enterTuple(newExpr) } From 68c7485067542be0b883cb734a96c87c9ce60f59 Mon Sep 17 00:00:00 2001 From: Mahtab <67663333+MahtabNorouzi@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:50:46 -0400 Subject: [PATCH 14/14] Update quint/src/effects/builtinSignatures.ts Co-authored-by: Gabriela Moreira --- quint/src/effects/builtinSignatures.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/quint/src/effects/builtinSignatures.ts b/quint/src/effects/builtinSignatures.ts index ebbe697a5..a48d6522f 100644 --- a/quint/src/effects/builtinSignatures.ts +++ b/quint/src/effects/builtinSignatures.ts @@ -15,7 +15,6 @@ import { ComponentKind, Effect, EffectComponent, EffectScheme, Entity, Signature, effectNames, toScheme } from './base' import { parseEffectOrThrow } from './parser' import { range, times } from 'lodash' -// import { QuintBuiltinOpcode } from '../ir/quintIr' export function getSignatures(): Map { return new Map(fixedAritySignatures.concat(multipleAritySignatures))