js-randomness-predictor
Version:
Predict Math.random output in Node, Deno, Bun, Chrome, Firefox, and Safari
1 lines • 146 kB
JavaScript
(function(k,bt){typeof exports=="object"&&typeof module<"u"?bt(exports):typeof define=="function"&&define.amd?define(["exports"],bt):(k=typeof globalThis<"u"?globalThis:k||self,bt(k.JSRandomnessPredictor={}))})(this,(function(k){"use strict";function bt(c,i){for(var t=0;t<i.length;t++){const u=i[t];if(typeof u!="string"&&!Array.isArray(u)){for(const f in u)if(f!=="default"&&!(f in c)){const g=Object.getOwnPropertyDescriptor(u,f);g&&Object.defineProperty(c,f,g.get?g:{enumerable:!0,get:()=>u[f]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}class gt extends Error{constructor(i){i=i===void 0?"Cannot solve state. Unable to make accurate predictions.":i,super(i),this.name="UnsatError",Object.setPrototypeOf(this,new.target.prototype)}}class Xe extends Error{constructor(i){super(i),this.name="InsufficientSequenceLengthError",Object.setPrototypeOf(this,new.target.prototype)}}class dt extends Error{constructor(i){super(i),this.name="UnexpectedRuntimeError",Object.setPrototypeOf(this,new.target.prototype)}}class ht{constructor(){}static isDeno(){return typeof globalThis.Deno<"u"&&typeof Deno.version<"u"&&typeof Deno.version.deno=="string"}static isBun(){return typeof globalThis.Bun<"u"&&typeof Bun.version<"u"&&typeof process.versions.bun=="string"}static isNode(){return!this.isDeno()&&!this.isBun()&&typeof process.versions.node<"u"&&typeof process.versions.node=="string"}static isFirefox(){return typeof window<"u"&&navigator.userAgent.indexOf("Firefox")>-1}static isChrome(){return typeof window<"u"&&navigator.userAgent.indexOf("Chrome")>-1}static isSafari(){return typeof window<"u"&&navigator.userAgent.indexOf("Safari")>-1}static type(){if(this.isNode())return"node";if(this.isDeno())return"deno";if(this.isBun())return"bun";if(this.isChrome())return"chrome";if(this.isSafari())return"safari";if(this.isFirefox())return"firefox";throw new dt}}function Cn(){if(ht.isChrome())return"chrome";if(ht.isSafari())return"safari";if(ht.isFirefox())return"firefox"}async function zn(){const c="https://z3-tawny.vercel.app/z3-built.js",i="https://z3-tawny.vercel.app/z3-built.wasm";try{const[u,f]=await Promise.all([fetch(c),fetch(i)]);(!u.ok||!f.ok)&&console.error("js-randomness-predictor Failed to fetch z3 files",{jsResponse:u.ok,wasmResponse:f.ok});const g=await u.text(),b=new Blob([g],{type:"text/javascript"}),P=URL.createObjectURL(b);var t={locateFile:(E,e)=>E.endsWith(".wasm")?i:e+E,onRuntimeInitialized:()=>{console.log("js-randomness-predictor initialized.")},wasmBinaryFile:i,mainScriptUrlOrBlob:P};window.Module=t;const a=document.createElement("script");a.src=P,a.id="z3-built-jsrp",document.body.appendChild(a),(function E(){try{if(typeof initZ3>"u")setTimeout(()=>E(),300);else if(window.initZ3){window.initZ3=initZ3;return}}catch(e){console.error("js-randomness-predictor something went wrong during initialize()",e)}})()}catch(u){console.error("js-randomness-predictor an error occurred during loading:",u)}}function z(c){return c&0xffffffffffffffffn}class L{constructor(){}static symbolic(i){let t=i[0];t=t.xor(t.shl(23)),t=t.xor(t.lshr(17)),t=t.xor(i[1]),t=t.xor(i[1].lshr(26)),i[0]=i[1],i[1]=t}static symbolicArithmeticShiftRight(i){let t=i[0];t=t.xor(t.shl(23)),t=t.xor(t.shr(17)),t=t.xor(i[1]),t=t.xor(i[1].shr(26)),i[0]=i[1],i[1]=t}static concreteBackwards(i){let t=i[1]^i[0]>>26n^i[0];t=z(t^t>>17n^t>>34n^t>>51n),t=z(t^t<<23n^t<<46n),i[1]=i[0],i[0]=t}static concrete(i){let t=i[0];t^=z(t<<23n),t^=z(t>>17n),t^=i[1],t^=z(i[1]>>26n),i[0]=i[1],i[1]=t}static concreteArithmeticShiftRight(i){let t=z(i[0]);t^=z(t<<23n),t^=this.#e(t,17n),t^=i[1],t^=this.#e(i[1],26n),i[0]=i[1],i[1]=z(t)}static#e(i,t){const u=z(i>>t);if((i&1n<<63n)===0n)return u;const g=(1n<<t)-1n<<64n-t;return u|g}}let se;async function oe(){if(se)return{...se};if(!window.initZ3||!window.Module)throw new Error("Z3 not initialized properly! window.initZ3 and window.Module should be set via IIFE in entry!");const c=window.initZ3,i=async()=>await c(window.Module),t=await(await Promise.resolve().then(()=>c_)).init(i),{createApi:u}=await Promise.resolve().then(()=>E_),f={...t,...u(t.Z3)};return se={...f},f}class ae{#e=[0n,0n];#r;#t;constructor(i,t){if(t.length<=0)throw new Error("V8EnginePredictor requires at least one solvingStrategy in solvingStrategies");this.sequence=i,this.#r=t,this.#t=this.#r[0]}async predictNext(){this.#e[0]===0n&&this.#e[1]===0n&&await this.#_();const i=this.#t.toDouble(this.#e);return this.#t.concreteXorShift(this.#e),i}async#n(){try{const{Context:i}=await oe(),t=i("main"),u=new t.Solver,f=t.BitVec.const("ss0",64),g=t.BitVec.const("ss1",64),b=[f,g],P=[...this.sequence].reverse();for(const E of P){this.#t.symbolicXorShift(b);const e=this.#t.recoverMantissa(E);this.#t.constrainMantissa(e,b,u,t)}if(await u.check()!=="sat")throw new gt;const a=u.model();this.#e=[a.get(f).value(),a.get(g).value()]}catch(i){return Promise.reject(i)}}async#_(){let i;for(const t of this.#r)try{return this.#t=t,await this.#n()}catch(u){if(!(u instanceof gt))throw u;i=u}throw i??new Error("V8EnginePredictor : no strategies attempted")}}const Lt=Math.pow(2,53),Vn=[{recoverMantissa:c=>{const i=Math.floor(c*Lt);return BigInt(i)},toDouble:c=>Number(c[0]>>11n)/Lt,constrainMantissa:(c,i,t,u)=>{t.add(i[0].lshr(11).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)},{recoverMantissa:c=>{const i=Math.floor(c*Lt);return BigInt(i)},toDouble:c=>{const i=z(c[0]+c[1]);return Number(i>>11n)/Lt},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]);t.add(f.lshr(11).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)}];class $e extends ae{constructor(i){super(i,Vn)}}class Gn{#e=[0n,0n];#r;#t;constructor(i,t){if(t.length<=0)throw new Error("SpiderMonkeyPredictor requires at least one solvingStrategy in solvingStrategies");this.sequence=i,this.#r=t,this.#t=this.#r[0]}async predictNext(){return this.#e[0]===0n&&this.#e[1]===0n&&await this.#_(),this.#t.concreteXorShift(this.#e),this.#t.toDouble(this.#e)}async#n(){try{const{Context:i}=await oe(),t=i("main"),u=new t.Solver,f=t.BitVec.const("ss0",64),g=t.BitVec.const("ss1",64),b=[f,g];for(const E of this.sequence){this.#t.symbolicXorShift(b);const e=this.#t.recoverMantissa(E);this.#t.constrainMantissa(e,b,u,t)}if(await u.check()!=="sat")throw new gt;const P=u.model(),a=[P.get(f).value(),P.get(g).value()];for(const E of this.sequence)this.#t.concreteXorShift(a);this.#e=a}catch(i){return Promise.reject(i)}}async#_(){let i;for(const t of this.#r)try{return this.#t=t,await this.#n()}catch(u){if(!(u instanceof gt))throw u;i=u}throw i??new Error("SpiderMonkeyPredictor : no strategies attempted")}}const Ye=0x1fffffffffffffn,He=Math.pow(2,53),Qn=[{recoverMantissa:c=>BigInt(Math.floor(c*He)),toDouble:c=>{const i=z(c[0]+c[1]);return Number(i&Ye)/He},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]).and(u.BitVec.val(Ye,64));t.add(f.eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concrete(c)}];class We extends Gn{constructor(i){super(i,Qn)}}const Ke=["node","bun","deno","chrome","firefox","safari"],jn=["node","bun","deno"],Xn=["chrome","safari","firefox"];Object.fromEntries(Ke.map(c=>[c,jn.includes(c)])),Object.fromEntries(Ke.map(c=>[c,Xn.includes(c)])),Object.entries({node:"v8",bun:"javascriptcore",deno:"v8",chrome:"v8",firefox:"spidermonkey",safari:"javascriptcore"}).reduce((c,[i,t])=>((c[t]||=[]).push(i),c),{});const ie={node:5},Je=64,Mt=0x000fffffffffffffn,tr=0x3ff0000000000000n,xt=Math.pow(2,53),$n=[{recoverMantissa:c=>{const i=Math.floor(c*xt);return BigInt(i)},toDouble:c=>{const i=z(c[0]+c[1]);return Number(i>>11n)/xt},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]);t.add(f.lshr(11).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)},{recoverMantissa:c=>{const i=Math.floor(c*xt);return BigInt(i)},toDouble:c=>Number(c[0]>>11n)/xt,constrainMantissa:(c,i,t,u)=>{t.add(i[0].lshr(11).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)},{recoverMantissa:c=>{const i=Buffer.alloc(8);return i.writeDoubleLE(c+1,0),i.readBigUInt64LE(0)&Mt},toDouble:c=>{const i=Buffer.alloc(8);return i.writeBigUInt64LE(c[0]>>12n|tr,0),i.readDoubleLE(0)-1},constrainMantissa:(c,i,t,u)=>{t.add(i[0].lshr(12).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)},{recoverMantissa:c=>{const i=Buffer.alloc(8);return i.writeDoubleLE(c+1,0),i.readBigUInt64LE(0)&Mt},toDouble:c=>{const i=c[0]+c[1],t=Buffer.alloc(8);return t.writeBigUInt64LE(i&Mt|tr,0),t.readDoubleLE(0)-1},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]).and(u.BitVec.val(Mt,64));t.add(f.eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)}];class er extends ae{constructor(i){if(i){if(i.length>=Je)throw new Error(`sequence.length must be less than '${Je}', got '${i.length}'`);if(i.length<ie.node)throw new Error(`sequence.length must be at least '${ie.node}', got '${i.length}'`)}if(!i){if(!ht.isNode())throw new dt("Expected NodeJS runtime! Unable to auto-generate sequence, please provide one.");i=Array.from({length:ie.node},Math.random)}super(i,$n)}}class rr{#e=[0n,0n];#r;#t;constructor(i,t){if(t.length<=0)throw new Error("JavaScriptCorePredictor requires at least one solvingStrategy in solvingStrategies");this.sequence=i,this.#r=t,this.#t=this.#r[0]}async predictNext(){return this.#e[0]===0n&&this.#e[1]===0n&&await this.#_(),this.#t.concreteXorShift(this.#e),this.#t.toDouble(this.#e)}async#n(){try{const{Context:i}=await oe(),t=i("main"),u=new t.Solver,f=t.BitVec.const("ss0",64),g=t.BitVec.const("ss1",64),b=[f,g];for(const E of this.sequence){this.#t.symbolicXorShift(b);const e=this.#t.recoverMantissa(E);this.#t.constrainMantissa(e,b,u,t)}if(await u.check()!=="sat")throw new gt;const P=u.model(),a=[P.get(f).value(),P.get(g).value()];for(const E of this.sequence)this.#t.concreteXorShift(a);this.#e=a}catch(i){return Promise.reject(i)}}async#_(){let i;for(const t of this.#r)try{return this.#t=t,await this.#n()}catch(u){if(!(u instanceof gt))throw u;i=u}throw i??new Error("JavaScriptCorePredictor : no strategies attempted")}}const nr=6,_r=0x1fffffffffffffn,sr=Math.pow(2,53),or={recoverMantissa:c=>BigInt(Math.floor(c*sr)),toDouble:c=>{const i=z(c[0]+c[1]);return Number(i&_r)/sr},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]).and(u.BitVec.val(_r,64));t.add(f.eq(u.BitVec.val(c,64)))}},Yn=[{...or,symbolicXorShift:c=>L.symbolicArithmeticShiftRight(c),concreteXorShift:c=>L.concreteArithmeticShiftRight(c)},{...or,symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concrete(c)}];class ar extends rr{constructor(i){if(i.length<nr)throw new Xe(`sequence length must be >= ${nr} : got ${i.length}`);super(i,Yn)}}function Hn(c=1){const i=[];for(let t=0;t<c;t++)i.push(Math.random());return i}const ue=6,ir=0x1fffffffffffffn,ur=Math.pow(2,53),cr={recoverMantissa:c=>BigInt(Math.floor(c*ur)),toDouble:c=>{const i=z(c[0]+c[1]);return Number(i&ir)/ur},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]).and(u.BitVec.val(ir,64));t.add(f.eq(u.BitVec.val(c,64)))}},Wn=[{...cr,symbolicXorShift:c=>L.symbolicArithmeticShiftRight(c),concreteXorShift:c=>L.concreteArithmeticShiftRight(c)},{...cr,symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concrete(c)}];class mr extends rr{constructor(i){if(i&&i.length<ue)throw new Xe(`sequence length must be >= ${ue} : got ${i.length}`);if(!i){if(!ht.isBun())throw new dt("Expected Bun runtime! Unable to auto-generate sequence, please provide one.");i=Hn(ue)}super(i,Wn)}}const Ut=Math.pow(2,53),Kn=[{recoverMantissa:c=>{const i=Math.floor(c*Ut);return BigInt(i)},toDouble:c=>Number(c[0]>>11n)/Ut,constrainMantissa:(c,i,t,u)=>{t.add(i[0].lshr(11).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)},{recoverMantissa:c=>{const i=Math.floor(c*Ut);return BigInt(i)},toDouble:c=>{const i=z(c[0]+c[1]);return Number(i>>11n)/Ut},constrainMantissa:(c,i,t,u)=>{const f=i[0].add(i[1]);t.add(f.lshr(11).eq(u.BitVec.val(c,64)))},symbolicXorShift:c=>L.symbolic(c),concreteXorShift:c=>L.concreteBackwards(c)}];class lr extends ae{constructor(i){if(!i){if(!ht.isDeno())throw new dt("Expected Deno runtime! Unable to auto-generate sequence, please provide one.");i=Array.from({length:4},Math.random)}super(i,Kn)}}zn();const Jn=c=>new er(c),t_=c=>new We(c),e_=c=>new $e(c),r_=c=>new ar(c),n_=c=>new mr(c),__=c=>new lr(c);var s_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function o_(c){return c&&c.__esModule&&Object.prototype.hasOwnProperty.call(c,"default")?c.default:c}function a_(c){if(Object.prototype.hasOwnProperty.call(c,"__esModule"))return c;var i=c.default;if(typeof i=="function"){var t=function u(){var f=!1;try{f=this instanceof u}catch{}return f?Reflect.construct(i,arguments,this.constructor):i.apply(this,arguments)};t.prototype=i.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(c).forEach(function(u){var f=Object.getOwnPropertyDescriptor(c,u);Object.defineProperty(t,u,f.get?f:{enumerable:!0,get:function(){return c[u]}})}),t}var ot={},U={},fr;function i_(){if(fr)return U;fr=1,Object.defineProperty(U,"__esModule",{value:!0}),U.Z3_goal_prec=U.Z3_error_code=U.Z3_ast_print_mode=U.Z3_param_kind=U.Z3_decl_kind=U.Z3_ast_kind=U.Z3_sort_kind=U.Z3_parameter_kind=U.Z3_symbol_kind=U.Z3_lbool=void 0;var c;(function(e){e[e.Z3_L_FALSE=-1]="Z3_L_FALSE",e[e.Z3_L_UNDEF=0]="Z3_L_UNDEF",e[e.Z3_L_TRUE=1]="Z3_L_TRUE"})(c||(U.Z3_lbool=c={}));var i;(function(e){e[e.Z3_INT_SYMBOL=0]="Z3_INT_SYMBOL",e[e.Z3_STRING_SYMBOL=1]="Z3_STRING_SYMBOL"})(i||(U.Z3_symbol_kind=i={}));var t;(function(e){e[e.Z3_PARAMETER_INT=0]="Z3_PARAMETER_INT",e[e.Z3_PARAMETER_DOUBLE=1]="Z3_PARAMETER_DOUBLE",e[e.Z3_PARAMETER_RATIONAL=2]="Z3_PARAMETER_RATIONAL",e[e.Z3_PARAMETER_SYMBOL=3]="Z3_PARAMETER_SYMBOL",e[e.Z3_PARAMETER_SORT=4]="Z3_PARAMETER_SORT",e[e.Z3_PARAMETER_AST=5]="Z3_PARAMETER_AST",e[e.Z3_PARAMETER_FUNC_DECL=6]="Z3_PARAMETER_FUNC_DECL",e[e.Z3_PARAMETER_INTERNAL=7]="Z3_PARAMETER_INTERNAL",e[e.Z3_PARAMETER_ZSTRING=8]="Z3_PARAMETER_ZSTRING"})(t||(U.Z3_parameter_kind=t={}));var u;(function(e){e[e.Z3_UNINTERPRETED_SORT=0]="Z3_UNINTERPRETED_SORT",e[e.Z3_BOOL_SORT=1]="Z3_BOOL_SORT",e[e.Z3_INT_SORT=2]="Z3_INT_SORT",e[e.Z3_REAL_SORT=3]="Z3_REAL_SORT",e[e.Z3_BV_SORT=4]="Z3_BV_SORT",e[e.Z3_ARRAY_SORT=5]="Z3_ARRAY_SORT",e[e.Z3_DATATYPE_SORT=6]="Z3_DATATYPE_SORT",e[e.Z3_RELATION_SORT=7]="Z3_RELATION_SORT",e[e.Z3_FINITE_DOMAIN_SORT=8]="Z3_FINITE_DOMAIN_SORT",e[e.Z3_FLOATING_POINT_SORT=9]="Z3_FLOATING_POINT_SORT",e[e.Z3_ROUNDING_MODE_SORT=10]="Z3_ROUNDING_MODE_SORT",e[e.Z3_SEQ_SORT=11]="Z3_SEQ_SORT",e[e.Z3_RE_SORT=12]="Z3_RE_SORT",e[e.Z3_CHAR_SORT=13]="Z3_CHAR_SORT",e[e.Z3_TYPE_VAR=14]="Z3_TYPE_VAR",e[e.Z3_UNKNOWN_SORT=1e3]="Z3_UNKNOWN_SORT"})(u||(U.Z3_sort_kind=u={}));var f;(function(e){e[e.Z3_NUMERAL_AST=0]="Z3_NUMERAL_AST",e[e.Z3_APP_AST=1]="Z3_APP_AST",e[e.Z3_VAR_AST=2]="Z3_VAR_AST",e[e.Z3_QUANTIFIER_AST=3]="Z3_QUANTIFIER_AST",e[e.Z3_SORT_AST=4]="Z3_SORT_AST",e[e.Z3_FUNC_DECL_AST=5]="Z3_FUNC_DECL_AST",e[e.Z3_UNKNOWN_AST=1e3]="Z3_UNKNOWN_AST"})(f||(U.Z3_ast_kind=f={}));var g;(function(e){e[e.Z3_OP_TRUE=256]="Z3_OP_TRUE",e[e.Z3_OP_FALSE=257]="Z3_OP_FALSE",e[e.Z3_OP_EQ=258]="Z3_OP_EQ",e[e.Z3_OP_DISTINCT=259]="Z3_OP_DISTINCT",e[e.Z3_OP_ITE=260]="Z3_OP_ITE",e[e.Z3_OP_AND=261]="Z3_OP_AND",e[e.Z3_OP_OR=262]="Z3_OP_OR",e[e.Z3_OP_IFF=263]="Z3_OP_IFF",e[e.Z3_OP_XOR=264]="Z3_OP_XOR",e[e.Z3_OP_NOT=265]="Z3_OP_NOT",e[e.Z3_OP_IMPLIES=266]="Z3_OP_IMPLIES",e[e.Z3_OP_OEQ=267]="Z3_OP_OEQ",e[e.Z3_OP_ANUM=512]="Z3_OP_ANUM",e[e.Z3_OP_AGNUM=513]="Z3_OP_AGNUM",e[e.Z3_OP_LE=514]="Z3_OP_LE",e[e.Z3_OP_GE=515]="Z3_OP_GE",e[e.Z3_OP_LT=516]="Z3_OP_LT",e[e.Z3_OP_GT=517]="Z3_OP_GT",e[e.Z3_OP_ADD=518]="Z3_OP_ADD",e[e.Z3_OP_SUB=519]="Z3_OP_SUB",e[e.Z3_OP_UMINUS=520]="Z3_OP_UMINUS",e[e.Z3_OP_MUL=521]="Z3_OP_MUL",e[e.Z3_OP_DIV=522]="Z3_OP_DIV",e[e.Z3_OP_IDIV=523]="Z3_OP_IDIV",e[e.Z3_OP_REM=524]="Z3_OP_REM",e[e.Z3_OP_MOD=525]="Z3_OP_MOD",e[e.Z3_OP_TO_REAL=526]="Z3_OP_TO_REAL",e[e.Z3_OP_TO_INT=527]="Z3_OP_TO_INT",e[e.Z3_OP_IS_INT=528]="Z3_OP_IS_INT",e[e.Z3_OP_POWER=529]="Z3_OP_POWER",e[e.Z3_OP_ABS=530]="Z3_OP_ABS",e[e.Z3_OP_STORE=768]="Z3_OP_STORE",e[e.Z3_OP_SELECT=769]="Z3_OP_SELECT",e[e.Z3_OP_CONST_ARRAY=770]="Z3_OP_CONST_ARRAY",e[e.Z3_OP_ARRAY_MAP=771]="Z3_OP_ARRAY_MAP",e[e.Z3_OP_ARRAY_DEFAULT=772]="Z3_OP_ARRAY_DEFAULT",e[e.Z3_OP_SET_UNION=773]="Z3_OP_SET_UNION",e[e.Z3_OP_SET_INTERSECT=774]="Z3_OP_SET_INTERSECT",e[e.Z3_OP_SET_DIFFERENCE=775]="Z3_OP_SET_DIFFERENCE",e[e.Z3_OP_SET_COMPLEMENT=776]="Z3_OP_SET_COMPLEMENT",e[e.Z3_OP_SET_SUBSET=777]="Z3_OP_SET_SUBSET",e[e.Z3_OP_AS_ARRAY=778]="Z3_OP_AS_ARRAY",e[e.Z3_OP_ARRAY_EXT=779]="Z3_OP_ARRAY_EXT",e[e.Z3_OP_SET_HAS_SIZE=780]="Z3_OP_SET_HAS_SIZE",e[e.Z3_OP_SET_CARD=781]="Z3_OP_SET_CARD",e[e.Z3_OP_BNUM=1024]="Z3_OP_BNUM",e[e.Z3_OP_BIT1=1025]="Z3_OP_BIT1",e[e.Z3_OP_BIT0=1026]="Z3_OP_BIT0",e[e.Z3_OP_BNEG=1027]="Z3_OP_BNEG",e[e.Z3_OP_BADD=1028]="Z3_OP_BADD",e[e.Z3_OP_BSUB=1029]="Z3_OP_BSUB",e[e.Z3_OP_BMUL=1030]="Z3_OP_BMUL",e[e.Z3_OP_BSDIV=1031]="Z3_OP_BSDIV",e[e.Z3_OP_BUDIV=1032]="Z3_OP_BUDIV",e[e.Z3_OP_BSREM=1033]="Z3_OP_BSREM",e[e.Z3_OP_BUREM=1034]="Z3_OP_BUREM",e[e.Z3_OP_BSMOD=1035]="Z3_OP_BSMOD",e[e.Z3_OP_BSDIV0=1036]="Z3_OP_BSDIV0",e[e.Z3_OP_BUDIV0=1037]="Z3_OP_BUDIV0",e[e.Z3_OP_BSREM0=1038]="Z3_OP_BSREM0",e[e.Z3_OP_BUREM0=1039]="Z3_OP_BUREM0",e[e.Z3_OP_BSMOD0=1040]="Z3_OP_BSMOD0",e[e.Z3_OP_ULEQ=1041]="Z3_OP_ULEQ",e[e.Z3_OP_SLEQ=1042]="Z3_OP_SLEQ",e[e.Z3_OP_UGEQ=1043]="Z3_OP_UGEQ",e[e.Z3_OP_SGEQ=1044]="Z3_OP_SGEQ",e[e.Z3_OP_ULT=1045]="Z3_OP_ULT",e[e.Z3_OP_SLT=1046]="Z3_OP_SLT",e[e.Z3_OP_UGT=1047]="Z3_OP_UGT",e[e.Z3_OP_SGT=1048]="Z3_OP_SGT",e[e.Z3_OP_BAND=1049]="Z3_OP_BAND",e[e.Z3_OP_BOR=1050]="Z3_OP_BOR",e[e.Z3_OP_BNOT=1051]="Z3_OP_BNOT",e[e.Z3_OP_BXOR=1052]="Z3_OP_BXOR",e[e.Z3_OP_BNAND=1053]="Z3_OP_BNAND",e[e.Z3_OP_BNOR=1054]="Z3_OP_BNOR",e[e.Z3_OP_BXNOR=1055]="Z3_OP_BXNOR",e[e.Z3_OP_CONCAT=1056]="Z3_OP_CONCAT",e[e.Z3_OP_SIGN_EXT=1057]="Z3_OP_SIGN_EXT",e[e.Z3_OP_ZERO_EXT=1058]="Z3_OP_ZERO_EXT",e[e.Z3_OP_EXTRACT=1059]="Z3_OP_EXTRACT",e[e.Z3_OP_REPEAT=1060]="Z3_OP_REPEAT",e[e.Z3_OP_BREDOR=1061]="Z3_OP_BREDOR",e[e.Z3_OP_BREDAND=1062]="Z3_OP_BREDAND",e[e.Z3_OP_BCOMP=1063]="Z3_OP_BCOMP",e[e.Z3_OP_BSHL=1064]="Z3_OP_BSHL",e[e.Z3_OP_BLSHR=1065]="Z3_OP_BLSHR",e[e.Z3_OP_BASHR=1066]="Z3_OP_BASHR",e[e.Z3_OP_ROTATE_LEFT=1067]="Z3_OP_ROTATE_LEFT",e[e.Z3_OP_ROTATE_RIGHT=1068]="Z3_OP_ROTATE_RIGHT",e[e.Z3_OP_EXT_ROTATE_LEFT=1069]="Z3_OP_EXT_ROTATE_LEFT",e[e.Z3_OP_EXT_ROTATE_RIGHT=1070]="Z3_OP_EXT_ROTATE_RIGHT",e[e.Z3_OP_BIT2BOOL=1071]="Z3_OP_BIT2BOOL",e[e.Z3_OP_INT2BV=1072]="Z3_OP_INT2BV",e[e.Z3_OP_BV2INT=1073]="Z3_OP_BV2INT",e[e.Z3_OP_SBV2INT=1074]="Z3_OP_SBV2INT",e[e.Z3_OP_CARRY=1075]="Z3_OP_CARRY",e[e.Z3_OP_XOR3=1076]="Z3_OP_XOR3",e[e.Z3_OP_BSMUL_NO_OVFL=1077]="Z3_OP_BSMUL_NO_OVFL",e[e.Z3_OP_BUMUL_NO_OVFL=1078]="Z3_OP_BUMUL_NO_OVFL",e[e.Z3_OP_BSMUL_NO_UDFL=1079]="Z3_OP_BSMUL_NO_UDFL",e[e.Z3_OP_BSDIV_I=1080]="Z3_OP_BSDIV_I",e[e.Z3_OP_BUDIV_I=1081]="Z3_OP_BUDIV_I",e[e.Z3_OP_BSREM_I=1082]="Z3_OP_BSREM_I",e[e.Z3_OP_BUREM_I=1083]="Z3_OP_BUREM_I",e[e.Z3_OP_BSMOD_I=1084]="Z3_OP_BSMOD_I",e[e.Z3_OP_PR_UNDEF=1280]="Z3_OP_PR_UNDEF",e[e.Z3_OP_PR_TRUE=1281]="Z3_OP_PR_TRUE",e[e.Z3_OP_PR_ASSERTED=1282]="Z3_OP_PR_ASSERTED",e[e.Z3_OP_PR_GOAL=1283]="Z3_OP_PR_GOAL",e[e.Z3_OP_PR_MODUS_PONENS=1284]="Z3_OP_PR_MODUS_PONENS",e[e.Z3_OP_PR_REFLEXIVITY=1285]="Z3_OP_PR_REFLEXIVITY",e[e.Z3_OP_PR_SYMMETRY=1286]="Z3_OP_PR_SYMMETRY",e[e.Z3_OP_PR_TRANSITIVITY=1287]="Z3_OP_PR_TRANSITIVITY",e[e.Z3_OP_PR_TRANSITIVITY_STAR=1288]="Z3_OP_PR_TRANSITIVITY_STAR",e[e.Z3_OP_PR_MONOTONICITY=1289]="Z3_OP_PR_MONOTONICITY",e[e.Z3_OP_PR_QUANT_INTRO=1290]="Z3_OP_PR_QUANT_INTRO",e[e.Z3_OP_PR_BIND=1291]="Z3_OP_PR_BIND",e[e.Z3_OP_PR_DISTRIBUTIVITY=1292]="Z3_OP_PR_DISTRIBUTIVITY",e[e.Z3_OP_PR_AND_ELIM=1293]="Z3_OP_PR_AND_ELIM",e[e.Z3_OP_PR_NOT_OR_ELIM=1294]="Z3_OP_PR_NOT_OR_ELIM",e[e.Z3_OP_PR_REWRITE=1295]="Z3_OP_PR_REWRITE",e[e.Z3_OP_PR_REWRITE_STAR=1296]="Z3_OP_PR_REWRITE_STAR",e[e.Z3_OP_PR_PULL_QUANT=1297]="Z3_OP_PR_PULL_QUANT",e[e.Z3_OP_PR_PUSH_QUANT=1298]="Z3_OP_PR_PUSH_QUANT",e[e.Z3_OP_PR_ELIM_UNUSED_VARS=1299]="Z3_OP_PR_ELIM_UNUSED_VARS",e[e.Z3_OP_PR_DER=1300]="Z3_OP_PR_DER",e[e.Z3_OP_PR_QUANT_INST=1301]="Z3_OP_PR_QUANT_INST",e[e.Z3_OP_PR_HYPOTHESIS=1302]="Z3_OP_PR_HYPOTHESIS",e[e.Z3_OP_PR_LEMMA=1303]="Z3_OP_PR_LEMMA",e[e.Z3_OP_PR_UNIT_RESOLUTION=1304]="Z3_OP_PR_UNIT_RESOLUTION",e[e.Z3_OP_PR_IFF_TRUE=1305]="Z3_OP_PR_IFF_TRUE",e[e.Z3_OP_PR_IFF_FALSE=1306]="Z3_OP_PR_IFF_FALSE",e[e.Z3_OP_PR_COMMUTATIVITY=1307]="Z3_OP_PR_COMMUTATIVITY",e[e.Z3_OP_PR_DEF_AXIOM=1308]="Z3_OP_PR_DEF_AXIOM",e[e.Z3_OP_PR_ASSUMPTION_ADD=1309]="Z3_OP_PR_ASSUMPTION_ADD",e[e.Z3_OP_PR_LEMMA_ADD=1310]="Z3_OP_PR_LEMMA_ADD",e[e.Z3_OP_PR_REDUNDANT_DEL=1311]="Z3_OP_PR_REDUNDANT_DEL",e[e.Z3_OP_PR_CLAUSE_TRAIL=1312]="Z3_OP_PR_CLAUSE_TRAIL",e[e.Z3_OP_PR_DEF_INTRO=1313]="Z3_OP_PR_DEF_INTRO",e[e.Z3_OP_PR_APPLY_DEF=1314]="Z3_OP_PR_APPLY_DEF",e[e.Z3_OP_PR_IFF_OEQ=1315]="Z3_OP_PR_IFF_OEQ",e[e.Z3_OP_PR_NNF_POS=1316]="Z3_OP_PR_NNF_POS",e[e.Z3_OP_PR_NNF_NEG=1317]="Z3_OP_PR_NNF_NEG",e[e.Z3_OP_PR_SKOLEMIZE=1318]="Z3_OP_PR_SKOLEMIZE",e[e.Z3_OP_PR_MODUS_PONENS_OEQ=1319]="Z3_OP_PR_MODUS_PONENS_OEQ",e[e.Z3_OP_PR_TH_LEMMA=1320]="Z3_OP_PR_TH_LEMMA",e[e.Z3_OP_PR_HYPER_RESOLVE=1321]="Z3_OP_PR_HYPER_RESOLVE",e[e.Z3_OP_RA_STORE=1536]="Z3_OP_RA_STORE",e[e.Z3_OP_RA_EMPTY=1537]="Z3_OP_RA_EMPTY",e[e.Z3_OP_RA_IS_EMPTY=1538]="Z3_OP_RA_IS_EMPTY",e[e.Z3_OP_RA_JOIN=1539]="Z3_OP_RA_JOIN",e[e.Z3_OP_RA_UNION=1540]="Z3_OP_RA_UNION",e[e.Z3_OP_RA_WIDEN=1541]="Z3_OP_RA_WIDEN",e[e.Z3_OP_RA_PROJECT=1542]="Z3_OP_RA_PROJECT",e[e.Z3_OP_RA_FILTER=1543]="Z3_OP_RA_FILTER",e[e.Z3_OP_RA_NEGATION_FILTER=1544]="Z3_OP_RA_NEGATION_FILTER",e[e.Z3_OP_RA_RENAME=1545]="Z3_OP_RA_RENAME",e[e.Z3_OP_RA_COMPLEMENT=1546]="Z3_OP_RA_COMPLEMENT",e[e.Z3_OP_RA_SELECT=1547]="Z3_OP_RA_SELECT",e[e.Z3_OP_RA_CLONE=1548]="Z3_OP_RA_CLONE",e[e.Z3_OP_FD_CONSTANT=1549]="Z3_OP_FD_CONSTANT",e[e.Z3_OP_FD_LT=1550]="Z3_OP_FD_LT",e[e.Z3_OP_SEQ_UNIT=1551]="Z3_OP_SEQ_UNIT",e[e.Z3_OP_SEQ_EMPTY=1552]="Z3_OP_SEQ_EMPTY",e[e.Z3_OP_SEQ_CONCAT=1553]="Z3_OP_SEQ_CONCAT",e[e.Z3_OP_SEQ_PREFIX=1554]="Z3_OP_SEQ_PREFIX",e[e.Z3_OP_SEQ_SUFFIX=1555]="Z3_OP_SEQ_SUFFIX",e[e.Z3_OP_SEQ_CONTAINS=1556]="Z3_OP_SEQ_CONTAINS",e[e.Z3_OP_SEQ_EXTRACT=1557]="Z3_OP_SEQ_EXTRACT",e[e.Z3_OP_SEQ_REPLACE=1558]="Z3_OP_SEQ_REPLACE",e[e.Z3_OP_SEQ_REPLACE_RE=1559]="Z3_OP_SEQ_REPLACE_RE",e[e.Z3_OP_SEQ_REPLACE_RE_ALL=1560]="Z3_OP_SEQ_REPLACE_RE_ALL",e[e.Z3_OP_SEQ_REPLACE_ALL=1561]="Z3_OP_SEQ_REPLACE_ALL",e[e.Z3_OP_SEQ_AT=1562]="Z3_OP_SEQ_AT",e[e.Z3_OP_SEQ_NTH=1563]="Z3_OP_SEQ_NTH",e[e.Z3_OP_SEQ_LENGTH=1564]="Z3_OP_SEQ_LENGTH",e[e.Z3_OP_SEQ_INDEX=1565]="Z3_OP_SEQ_INDEX",e[e.Z3_OP_SEQ_LAST_INDEX=1566]="Z3_OP_SEQ_LAST_INDEX",e[e.Z3_OP_SEQ_TO_RE=1567]="Z3_OP_SEQ_TO_RE",e[e.Z3_OP_SEQ_IN_RE=1568]="Z3_OP_SEQ_IN_RE",e[e.Z3_OP_SEQ_MAP=1569]="Z3_OP_SEQ_MAP",e[e.Z3_OP_SEQ_MAPI=1570]="Z3_OP_SEQ_MAPI",e[e.Z3_OP_SEQ_FOLDL=1571]="Z3_OP_SEQ_FOLDL",e[e.Z3_OP_SEQ_FOLDLI=1572]="Z3_OP_SEQ_FOLDLI",e[e.Z3_OP_STR_TO_INT=1573]="Z3_OP_STR_TO_INT",e[e.Z3_OP_INT_TO_STR=1574]="Z3_OP_INT_TO_STR",e[e.Z3_OP_UBV_TO_STR=1575]="Z3_OP_UBV_TO_STR",e[e.Z3_OP_SBV_TO_STR=1576]="Z3_OP_SBV_TO_STR",e[e.Z3_OP_STR_TO_CODE=1577]="Z3_OP_STR_TO_CODE",e[e.Z3_OP_STR_FROM_CODE=1578]="Z3_OP_STR_FROM_CODE",e[e.Z3_OP_STRING_LT=1579]="Z3_OP_STRING_LT",e[e.Z3_OP_STRING_LE=1580]="Z3_OP_STRING_LE",e[e.Z3_OP_RE_PLUS=1581]="Z3_OP_RE_PLUS",e[e.Z3_OP_RE_STAR=1582]="Z3_OP_RE_STAR",e[e.Z3_OP_RE_OPTION=1583]="Z3_OP_RE_OPTION",e[e.Z3_OP_RE_CONCAT=1584]="Z3_OP_RE_CONCAT",e[e.Z3_OP_RE_UNION=1585]="Z3_OP_RE_UNION",e[e.Z3_OP_RE_RANGE=1586]="Z3_OP_RE_RANGE",e[e.Z3_OP_RE_DIFF=1587]="Z3_OP_RE_DIFF",e[e.Z3_OP_RE_INTERSECT=1588]="Z3_OP_RE_INTERSECT",e[e.Z3_OP_RE_LOOP=1589]="Z3_OP_RE_LOOP",e[e.Z3_OP_RE_POWER=1590]="Z3_OP_RE_POWER",e[e.Z3_OP_RE_COMPLEMENT=1591]="Z3_OP_RE_COMPLEMENT",e[e.Z3_OP_RE_EMPTY_SET=1592]="Z3_OP_RE_EMPTY_SET",e[e.Z3_OP_RE_FULL_SET=1593]="Z3_OP_RE_FULL_SET",e[e.Z3_OP_RE_FULL_CHAR_SET=1594]="Z3_OP_RE_FULL_CHAR_SET",e[e.Z3_OP_RE_OF_PRED=1595]="Z3_OP_RE_OF_PRED",e[e.Z3_OP_RE_REVERSE=1596]="Z3_OP_RE_REVERSE",e[e.Z3_OP_RE_DERIVATIVE=1597]="Z3_OP_RE_DERIVATIVE",e[e.Z3_OP_CHAR_CONST=1598]="Z3_OP_CHAR_CONST",e[e.Z3_OP_CHAR_LE=1599]="Z3_OP_CHAR_LE",e[e.Z3_OP_CHAR_TO_INT=1600]="Z3_OP_CHAR_TO_INT",e[e.Z3_OP_CHAR_TO_BV=1601]="Z3_OP_CHAR_TO_BV",e[e.Z3_OP_CHAR_FROM_BV=1602]="Z3_OP_CHAR_FROM_BV",e[e.Z3_OP_CHAR_IS_DIGIT=1603]="Z3_OP_CHAR_IS_DIGIT",e[e.Z3_OP_LABEL=1792]="Z3_OP_LABEL",e[e.Z3_OP_LABEL_LIT=1793]="Z3_OP_LABEL_LIT",e[e.Z3_OP_DT_CONSTRUCTOR=2048]="Z3_OP_DT_CONSTRUCTOR",e[e.Z3_OP_DT_RECOGNISER=2049]="Z3_OP_DT_RECOGNISER",e[e.Z3_OP_DT_IS=2050]="Z3_OP_DT_IS",e[e.Z3_OP_DT_ACCESSOR=2051]="Z3_OP_DT_ACCESSOR",e[e.Z3_OP_DT_UPDATE_FIELD=2052]="Z3_OP_DT_UPDATE_FIELD",e[e.Z3_OP_PB_AT_MOST=2304]="Z3_OP_PB_AT_MOST",e[e.Z3_OP_PB_AT_LEAST=2305]="Z3_OP_PB_AT_LEAST",e[e.Z3_OP_PB_LE=2306]="Z3_OP_PB_LE",e[e.Z3_OP_PB_GE=2307]="Z3_OP_PB_GE",e[e.Z3_OP_PB_EQ=2308]="Z3_OP_PB_EQ",e[e.Z3_OP_SPECIAL_RELATION_LO=40960]="Z3_OP_SPECIAL_RELATION_LO",e[e.Z3_OP_SPECIAL_RELATION_PO=40961]="Z3_OP_SPECIAL_RELATION_PO",e[e.Z3_OP_SPECIAL_RELATION_PLO=40962]="Z3_OP_SPECIAL_RELATION_PLO",e[e.Z3_OP_SPECIAL_RELATION_TO=40963]="Z3_OP_SPECIAL_RELATION_TO",e[e.Z3_OP_SPECIAL_RELATION_TC=40964]="Z3_OP_SPECIAL_RELATION_TC",e[e.Z3_OP_SPECIAL_RELATION_TRC=40965]="Z3_OP_SPECIAL_RELATION_TRC",e[e.Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN=45056]="Z3_OP_FPA_RM_NEAREST_TIES_TO_EVEN",e[e.Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY=45057]="Z3_OP_FPA_RM_NEAREST_TIES_TO_AWAY",e[e.Z3_OP_FPA_RM_TOWARD_POSITIVE=45058]="Z3_OP_FPA_RM_TOWARD_POSITIVE",e[e.Z3_OP_FPA_RM_TOWARD_NEGATIVE=45059]="Z3_OP_FPA_RM_TOWARD_NEGATIVE",e[e.Z3_OP_FPA_RM_TOWARD_ZERO=45060]="Z3_OP_FPA_RM_TOWARD_ZERO",e[e.Z3_OP_FPA_NUM=45061]="Z3_OP_FPA_NUM",e[e.Z3_OP_FPA_PLUS_INF=45062]="Z3_OP_FPA_PLUS_INF",e[e.Z3_OP_FPA_MINUS_INF=45063]="Z3_OP_FPA_MINUS_INF",e[e.Z3_OP_FPA_NAN=45064]="Z3_OP_FPA_NAN",e[e.Z3_OP_FPA_PLUS_ZERO=45065]="Z3_OP_FPA_PLUS_ZERO",e[e.Z3_OP_FPA_MINUS_ZERO=45066]="Z3_OP_FPA_MINUS_ZERO",e[e.Z3_OP_FPA_ADD=45067]="Z3_OP_FPA_ADD",e[e.Z3_OP_FPA_SUB=45068]="Z3_OP_FPA_SUB",e[e.Z3_OP_FPA_NEG=45069]="Z3_OP_FPA_NEG",e[e.Z3_OP_FPA_MUL=45070]="Z3_OP_FPA_MUL",e[e.Z3_OP_FPA_DIV=45071]="Z3_OP_FPA_DIV",e[e.Z3_OP_FPA_REM=45072]="Z3_OP_FPA_REM",e[e.Z3_OP_FPA_ABS=45073]="Z3_OP_FPA_ABS",e[e.Z3_OP_FPA_MIN=45074]="Z3_OP_FPA_MIN",e[e.Z3_OP_FPA_MAX=45075]="Z3_OP_FPA_MAX",e[e.Z3_OP_FPA_FMA=45076]="Z3_OP_FPA_FMA",e[e.Z3_OP_FPA_SQRT=45077]="Z3_OP_FPA_SQRT",e[e.Z3_OP_FPA_ROUND_TO_INTEGRAL=45078]="Z3_OP_FPA_ROUND_TO_INTEGRAL",e[e.Z3_OP_FPA_EQ=45079]="Z3_OP_FPA_EQ",e[e.Z3_OP_FPA_LT=45080]="Z3_OP_FPA_LT",e[e.Z3_OP_FPA_GT=45081]="Z3_OP_FPA_GT",e[e.Z3_OP_FPA_LE=45082]="Z3_OP_FPA_LE",e[e.Z3_OP_FPA_GE=45083]="Z3_OP_FPA_GE",e[e.Z3_OP_FPA_IS_NAN=45084]="Z3_OP_FPA_IS_NAN",e[e.Z3_OP_FPA_IS_INF=45085]="Z3_OP_FPA_IS_INF",e[e.Z3_OP_FPA_IS_ZERO=45086]="Z3_OP_FPA_IS_ZERO",e[e.Z3_OP_FPA_IS_NORMAL=45087]="Z3_OP_FPA_IS_NORMAL",e[e.Z3_OP_FPA_IS_SUBNORMAL=45088]="Z3_OP_FPA_IS_SUBNORMAL",e[e.Z3_OP_FPA_IS_NEGATIVE=45089]="Z3_OP_FPA_IS_NEGATIVE",e[e.Z3_OP_FPA_IS_POSITIVE=45090]="Z3_OP_FPA_IS_POSITIVE",e[e.Z3_OP_FPA_FP=45091]="Z3_OP_FPA_FP",e[e.Z3_OP_FPA_TO_FP=45092]="Z3_OP_FPA_TO_FP",e[e.Z3_OP_FPA_TO_FP_UNSIGNED=45093]="Z3_OP_FPA_TO_FP_UNSIGNED",e[e.Z3_OP_FPA_TO_UBV=45094]="Z3_OP_FPA_TO_UBV",e[e.Z3_OP_FPA_TO_SBV=45095]="Z3_OP_FPA_TO_SBV",e[e.Z3_OP_FPA_TO_REAL=45096]="Z3_OP_FPA_TO_REAL",e[e.Z3_OP_FPA_TO_IEEE_BV=45097]="Z3_OP_FPA_TO_IEEE_BV",e[e.Z3_OP_FPA_BVWRAP=45098]="Z3_OP_FPA_BVWRAP",e[e.Z3_OP_FPA_BV2RM=45099]="Z3_OP_FPA_BV2RM",e[e.Z3_OP_INTERNAL=45100]="Z3_OP_INTERNAL",e[e.Z3_OP_RECURSIVE=45101]="Z3_OP_RECURSIVE",e[e.Z3_OP_UNINTERPRETED=45102]="Z3_OP_UNINTERPRETED"})(g||(U.Z3_decl_kind=g={}));var b;(function(e){e[e.Z3_PK_UINT=0]="Z3_PK_UINT",e[e.Z3_PK_BOOL=1]="Z3_PK_BOOL",e[e.Z3_PK_DOUBLE=2]="Z3_PK_DOUBLE",e[e.Z3_PK_SYMBOL=3]="Z3_PK_SYMBOL",e[e.Z3_PK_STRING=4]="Z3_PK_STRING",e[e.Z3_PK_OTHER=5]="Z3_PK_OTHER",e[e.Z3_PK_INVALID=6]="Z3_PK_INVALID"})(b||(U.Z3_param_kind=b={}));var P;(function(e){e[e.Z3_PRINT_SMTLIB_FULL=0]="Z3_PRINT_SMTLIB_FULL",e[e.Z3_PRINT_LOW_LEVEL=1]="Z3_PRINT_LOW_LEVEL",e[e.Z3_PRINT_SMTLIB2_COMPLIANT=2]="Z3_PRINT_SMTLIB2_COMPLIANT"})(P||(U.Z3_ast_print_mode=P={}));var a;(function(e){e[e.Z3_OK=0]="Z3_OK",e[e.Z3_SORT_ERROR=1]="Z3_SORT_ERROR",e[e.Z3_IOB=2]="Z3_IOB",e[e.Z3_INVALID_ARG=3]="Z3_INVALID_ARG",e[e.Z3_PARSER_ERROR=4]="Z3_PARSER_ERROR",e[e.Z3_NO_PARSER=5]="Z3_NO_PARSER",e[e.Z3_INVALID_PATTERN=6]="Z3_INVALID_PATTERN",e[e.Z3_MEMOUT_FAIL=7]="Z3_MEMOUT_FAIL",e[e.Z3_FILE_ACCESS_ERROR=8]="Z3_FILE_ACCESS_ERROR",e[e.Z3_INTERNAL_FATAL=9]="Z3_INTERNAL_FATAL",e[e.Z3_INVALID_USAGE=10]="Z3_INVALID_USAGE",e[e.Z3_DEC_REF_ERROR=11]="Z3_DEC_REF_ERROR",e[e.Z3_EXCEPTION=12]="Z3_EXCEPTION"})(a||(U.Z3_error_code=a={}));var E;return(function(e){e[e.Z3_GOAL_PRECISE=0]="Z3_GOAL_PRECISE",e[e.Z3_GOAL_UNDER=1]="Z3_GOAL_UNDER",e[e.Z3_GOAL_OVER=2]="Z3_GOAL_OVER",e[e.Z3_GOAL_UNDER_OVER=3]="Z3_GOAL_UNDER_OVER"})(E||(U.Z3_goal_prec=E={})),U}var Dt={},pr;function u_(){if(pr)return Dt;pr=1,Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.init=c;async function c(i){let t=await i();function u(s){return new Uint8Array(new Uint32Array(s).buffer)}function f(s){return s.map(n=>n?1:0)}function g(s,n){return Array.from(new Uint32Array(t.HEAPU32.buffer,s,n))}let b=t._malloc(24),P=new Uint32Array(t.HEAPU32.buffer,b,4),a=s=>P[s],E=new Int32Array(t.HEAPU32.buffer,b,4),e=s=>E[s],I=new BigUint64Array(t.HEAPU32.buffer,b,2),N=s=>I[s],R=new BigInt64Array(t.HEAPU32.buffer,b,2),M=s=>R[s];return{em:t,Z3:{mk_context:function(s){let n=t._Z3_mk_context(s);return t._set_noop_error_handler(n),n},mk_context_rc:function(s){let n=t._Z3_mk_context_rc(s);return t._set_noop_error_handler(n),n},global_param_set:function(s,n){return t.ccall("Z3_global_param_set","void",["string","string"],[s,n])},global_param_reset_all:t._Z3_global_param_reset_all,global_param_get:function(s){return t.ccall("Z3_global_param_get","boolean",["string","number"],[s,b])?t.UTF8ToString(a(0)):null},mk_config:t._Z3_mk_config,del_config:t._Z3_del_config,set_param_value:function(s,n,o){return t.ccall("Z3_set_param_value","void",["number","string","string"],[s,n,o])},del_context:t._Z3_del_context,inc_ref:t._Z3_inc_ref,dec_ref:t._Z3_dec_ref,update_param_value:function(s,n,o){return t.ccall("Z3_update_param_value","void",["number","string","string"],[s,n,o])},get_global_param_descrs:t._Z3_get_global_param_descrs,interrupt:t._Z3_interrupt,enable_concurrent_dec_ref:t._Z3_enable_concurrent_dec_ref,mk_params:t._Z3_mk_params,params_inc_ref:t._Z3_params_inc_ref,params_dec_ref:t._Z3_params_dec_ref,params_set_bool:t._Z3_params_set_bool,params_set_uint:t._Z3_params_set_uint,params_set_double:t._Z3_params_set_double,params_set_symbol:t._Z3_params_set_symbol,params_to_string:function(s,n){return t.ccall("Z3_params_to_string","string",["number","number"],[s,n])},params_validate:t._Z3_params_validate,param_descrs_inc_ref:t._Z3_param_descrs_inc_ref,param_descrs_dec_ref:t._Z3_param_descrs_dec_ref,param_descrs_get_kind:t._Z3_param_descrs_get_kind,param_descrs_size:function(s,n){let o=t.ccall("Z3_param_descrs_size","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},param_descrs_get_name:t._Z3_param_descrs_get_name,param_descrs_get_documentation:function(s,n,o){return t.ccall("Z3_param_descrs_get_documentation","string",["number","number","number"],[s,n,o])},param_descrs_to_string:function(s,n){return t.ccall("Z3_param_descrs_to_string","string",["number","number"],[s,n])},mk_int_symbol:t._Z3_mk_int_symbol,mk_string_symbol:function(s,n){return t.ccall("Z3_mk_string_symbol","number",["number","string"],[s,n])},mk_uninterpreted_sort:t._Z3_mk_uninterpreted_sort,mk_type_variable:t._Z3_mk_type_variable,mk_bool_sort:t._Z3_mk_bool_sort,mk_int_sort:t._Z3_mk_int_sort,mk_real_sort:t._Z3_mk_real_sort,mk_bv_sort:t._Z3_mk_bv_sort,mk_finite_domain_sort:t._Z3_mk_finite_domain_sort,mk_array_sort:t._Z3_mk_array_sort,mk_array_sort_n:function(s,n,o){return t.ccall("Z3_mk_array_sort_n","number",["number","number","array","number"],[s,n.length,u(n),o])},mk_tuple_sort:function(s,n,o,h){if(o.length!==h.length)throw new TypeError(`field_names and field_sorts must be the same length (got ${o.length} and {field_sorts.length})`);let v=t._malloc(4*o.length);try{return{rv:t.ccall("Z3_mk_tuple_sort","number",["number","number","number","array","array","number","number"],[s,n,o.length,u(o),u(h),b,v]),mk_tuple_decl:a(0),proj_decl:g(v,o.length)}}finally{t._free(v)}},mk_enumeration_sort:function(s,n,o){let h=t._malloc(4*o.length);try{let v=t._malloc(4*o.length);try{return{rv:t.ccall("Z3_mk_enumeration_sort","number",["number","number","number","array","number","number"],[s,n,o.length,u(o),h,v]),enum_consts:g(h,o.length),enum_testers:g(v,o.length)}}finally{t._free(v)}}finally{t._free(h)}},mk_list_sort:function(s,n,o){return{rv:t.ccall("Z3_mk_list_sort","number",["number","number","number","number","number","number","number","number","number"],[s,n,o,b,b+4,b+8,b+12,b+16,b+20]),nil_decl:a(0),is_nil_decl:a(1),cons_decl:a(2),is_cons_decl:a(3),head_decl:a(4),tail_decl:a(5)}},mk_constructor:function(s,n,o,h,v,Z){if(h.length!==v.length)throw new TypeError(`field_names and sorts must be the same length (got ${h.length} and {sorts.length})`);if(h.length!==Z.length)throw new TypeError(`field_names and sort_refs must be the same length (got ${h.length} and {sort_refs.length})`);return t.ccall("Z3_mk_constructor","number",["number","number","number","number","array","array","array"],[s,n,o,h.length,u(h),u(v),u(Z)])},constructor_num_fields:function(s,n){let o=t.ccall("Z3_constructor_num_fields","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},del_constructor:t._Z3_del_constructor,mk_datatype:function(s,n,o){return t.ccall("Z3_mk_datatype","number",["number","number","number","array"],[s,n,o.length,u(o)])},mk_datatype_sort:t._Z3_mk_datatype_sort,mk_constructor_list:function(s,n){return t.ccall("Z3_mk_constructor_list","number",["number","number","array"],[s,n.length,u(n)])},del_constructor_list:t._Z3_del_constructor_list,mk_datatypes:function(s,n,o){if(n.length!==o.length)throw new TypeError(`sort_names and constructor_lists must be the same length (got ${n.length} and {constructor_lists.length})`);let h=t._malloc(4*n.length);try{let v=t.ccall("Z3_mk_datatypes","void",["number","number","array","number","array"],[s,n.length,u(n),h,u(o)]);return g(h,n.length)}finally{t._free(h)}},query_constructor:function(s,n,o){let h=t._malloc(4*o);try{let v=t.ccall("Z3_query_constructor","void",["number","number","number","number","number","number"],[s,n,o,b,b+4,h]);return{constructor:a(0),tester:a(1),accessors:g(h,o)}}finally{t._free(h)}},mk_func_decl:function(s,n,o,h){return t.ccall("Z3_mk_func_decl","number",["number","number","number","array","number"],[s,n,o.length,u(o),h])},mk_app:function(s,n,o){return t.ccall("Z3_mk_app","number",["number","number","number","array"],[s,n,o.length,u(o)])},mk_const:t._Z3_mk_const,mk_fresh_func_decl:function(s,n,o,h){return t.ccall("Z3_mk_fresh_func_decl","number",["number","string","number","array","number"],[s,n,o.length,u(o),h])},mk_fresh_const:function(s,n,o){return t.ccall("Z3_mk_fresh_const","number",["number","string","number"],[s,n,o])},mk_rec_func_decl:function(s,n,o,h){return t.ccall("Z3_mk_rec_func_decl","number",["number","number","number","array","number"],[s,n,o.length,u(o),h])},add_rec_def:function(s,n,o,h){return t.ccall("Z3_add_rec_def","void",["number","number","number","array","number"],[s,n,o.length,u(o),h])},mk_true:t._Z3_mk_true,mk_false:t._Z3_mk_false,mk_eq:t._Z3_mk_eq,mk_distinct:function(s,n){return t.ccall("Z3_mk_distinct","number",["number","number","array"],[s,n.length,u(n)])},mk_not:t._Z3_mk_not,mk_ite:t._Z3_mk_ite,mk_iff:t._Z3_mk_iff,mk_implies:t._Z3_mk_implies,mk_xor:t._Z3_mk_xor,mk_and:function(s,n){return t.ccall("Z3_mk_and","number",["number","number","array"],[s,n.length,u(n)])},mk_or:function(s,n){return t.ccall("Z3_mk_or","number",["number","number","array"],[s,n.length,u(n)])},mk_add:function(s,n){return t.ccall("Z3_mk_add","number",["number","number","array"],[s,n.length,u(n)])},mk_mul:function(s,n){return t.ccall("Z3_mk_mul","number",["number","number","array"],[s,n.length,u(n)])},mk_sub:function(s,n){return t.ccall("Z3_mk_sub","number",["number","number","array"],[s,n.length,u(n)])},mk_unary_minus:t._Z3_mk_unary_minus,mk_div:t._Z3_mk_div,mk_mod:t._Z3_mk_mod,mk_rem:t._Z3_mk_rem,mk_power:t._Z3_mk_power,mk_abs:t._Z3_mk_abs,mk_lt:t._Z3_mk_lt,mk_le:t._Z3_mk_le,mk_gt:t._Z3_mk_gt,mk_ge:t._Z3_mk_ge,mk_divides:t._Z3_mk_divides,mk_int2real:t._Z3_mk_int2real,mk_real2int:t._Z3_mk_real2int,mk_is_int:t._Z3_mk_is_int,mk_bvnot:t._Z3_mk_bvnot,mk_bvredand:t._Z3_mk_bvredand,mk_bvredor:t._Z3_mk_bvredor,mk_bvand:t._Z3_mk_bvand,mk_bvor:t._Z3_mk_bvor,mk_bvxor:t._Z3_mk_bvxor,mk_bvnand:t._Z3_mk_bvnand,mk_bvnor:t._Z3_mk_bvnor,mk_bvxnor:t._Z3_mk_bvxnor,mk_bvneg:t._Z3_mk_bvneg,mk_bvadd:t._Z3_mk_bvadd,mk_bvsub:t._Z3_mk_bvsub,mk_bvmul:t._Z3_mk_bvmul,mk_bvudiv:t._Z3_mk_bvudiv,mk_bvsdiv:t._Z3_mk_bvsdiv,mk_bvurem:t._Z3_mk_bvurem,mk_bvsrem:t._Z3_mk_bvsrem,mk_bvsmod:t._Z3_mk_bvsmod,mk_bvult:t._Z3_mk_bvult,mk_bvslt:t._Z3_mk_bvslt,mk_bvule:t._Z3_mk_bvule,mk_bvsle:t._Z3_mk_bvsle,mk_bvuge:t._Z3_mk_bvuge,mk_bvsge:t._Z3_mk_bvsge,mk_bvugt:t._Z3_mk_bvugt,mk_bvsgt:t._Z3_mk_bvsgt,mk_concat:t._Z3_mk_concat,mk_extract:t._Z3_mk_extract,mk_sign_ext:t._Z3_mk_sign_ext,mk_zero_ext:t._Z3_mk_zero_ext,mk_repeat:t._Z3_mk_repeat,mk_bit2bool:t._Z3_mk_bit2bool,mk_bvshl:t._Z3_mk_bvshl,mk_bvlshr:t._Z3_mk_bvlshr,mk_bvashr:t._Z3_mk_bvashr,mk_rotate_left:t._Z3_mk_rotate_left,mk_rotate_right:t._Z3_mk_rotate_right,mk_ext_rotate_left:t._Z3_mk_ext_rotate_left,mk_ext_rotate_right:t._Z3_mk_ext_rotate_right,mk_int2bv:t._Z3_mk_int2bv,mk_bv2int:t._Z3_mk_bv2int,mk_bvadd_no_overflow:t._Z3_mk_bvadd_no_overflow,mk_bvadd_no_underflow:t._Z3_mk_bvadd_no_underflow,mk_bvsub_no_overflow:t._Z3_mk_bvsub_no_overflow,mk_bvsub_no_underflow:t._Z3_mk_bvsub_no_underflow,mk_bvsdiv_no_overflow:t._Z3_mk_bvsdiv_no_overflow,mk_bvneg_no_overflow:t._Z3_mk_bvneg_no_overflow,mk_bvmul_no_overflow:t._Z3_mk_bvmul_no_overflow,mk_bvmul_no_underflow:t._Z3_mk_bvmul_no_underflow,mk_select:t._Z3_mk_select,mk_select_n:function(s,n,o){return t.ccall("Z3_mk_select_n","number",["number","number","number","array"],[s,n,o.length,u(o)])},mk_store:t._Z3_mk_store,mk_store_n:function(s,n,o,h){return t.ccall("Z3_mk_store_n","number",["number","number","number","array","number"],[s,n,o.length,u(o),h])},mk_const_array:t._Z3_mk_const_array,mk_map:function(s,n,o){return t.ccall("Z3_mk_map","number",["number","number","number","array"],[s,n,o.length,u(o)])},mk_array_default:t._Z3_mk_array_default,mk_as_array:t._Z3_mk_as_array,mk_set_has_size:t._Z3_mk_set_has_size,mk_set_sort:t._Z3_mk_set_sort,mk_empty_set:t._Z3_mk_empty_set,mk_full_set:t._Z3_mk_full_set,mk_set_add:t._Z3_mk_set_add,mk_set_del:t._Z3_mk_set_del,mk_set_union:function(s,n){return t.ccall("Z3_mk_set_union","number",["number","number","array"],[s,n.length,u(n)])},mk_set_intersect:function(s,n){return t.ccall("Z3_mk_set_intersect","number",["number","number","array"],[s,n.length,u(n)])},mk_set_difference:t._Z3_mk_set_difference,mk_set_complement:t._Z3_mk_set_complement,mk_set_member:t._Z3_mk_set_member,mk_set_subset:t._Z3_mk_set_subset,mk_array_ext:t._Z3_mk_array_ext,mk_numeral:function(s,n,o){return t.ccall("Z3_mk_numeral","number",["number","string","number"],[s,n,o])},mk_real:t._Z3_mk_real,mk_real_int64:t._Z3_mk_real_int64,mk_int:t._Z3_mk_int,mk_unsigned_int:t._Z3_mk_unsigned_int,mk_int64:t._Z3_mk_int64,mk_unsigned_int64:t._Z3_mk_unsigned_int64,mk_bv_numeral:function(s,n){return t.ccall("Z3_mk_bv_numeral","number",["number","number","array"],[s,n.length,f(n)])},mk_seq_sort:t._Z3_mk_seq_sort,is_seq_sort:function(s,n){return t.ccall("Z3_is_seq_sort","boolean",["number","number"],[s,n])},get_seq_sort_basis:t._Z3_get_seq_sort_basis,mk_re_sort:t._Z3_mk_re_sort,is_re_sort:function(s,n){return t.ccall("Z3_is_re_sort","boolean",["number","number"],[s,n])},get_re_sort_basis:t._Z3_get_re_sort_basis,mk_string_sort:t._Z3_mk_string_sort,mk_char_sort:t._Z3_mk_char_sort,is_string_sort:function(s,n){return t.ccall("Z3_is_string_sort","boolean",["number","number"],[s,n])},is_char_sort:function(s,n){return t.ccall("Z3_is_char_sort","boolean",["number","number"],[s,n])},mk_string:function(s,n){return t.ccall("Z3_mk_string","number",["number","string"],[s,n])},mk_lstring:function(s,n,o){return t.ccall("Z3_mk_lstring","number",["number","number","string"],[s,n,o])},mk_u32string:function(s,n){return t.ccall("Z3_mk_u32string","number",["number","number","array"],[s,n.length,u(n)])},is_string:function(s,n){return t.ccall("Z3_is_string","boolean",["number","number"],[s,n])},get_string:function(s,n){return t.ccall("Z3_get_string","string",["number","number"],[s,n])},get_string_length:function(s,n){let o=t.ccall("Z3_get_string_length","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_string_contents:function(s,n,o){let h=t._malloc(4*o);try{let v=t.ccall("Z3_get_string_contents","void",["number","number","number","number"],[s,n,o,h]);return g(h,o)}finally{t._free(h)}},mk_seq_empty:t._Z3_mk_seq_empty,mk_seq_unit:t._Z3_mk_seq_unit,mk_seq_concat:function(s,n){return t.ccall("Z3_mk_seq_concat","number",["number","number","array"],[s,n.length,u(n)])},mk_seq_prefix:t._Z3_mk_seq_prefix,mk_seq_suffix:t._Z3_mk_seq_suffix,mk_seq_contains:t._Z3_mk_seq_contains,mk_str_lt:t._Z3_mk_str_lt,mk_str_le:t._Z3_mk_str_le,mk_seq_extract:t._Z3_mk_seq_extract,mk_seq_replace:t._Z3_mk_seq_replace,mk_seq_at:t._Z3_mk_seq_at,mk_seq_nth:t._Z3_mk_seq_nth,mk_seq_length:t._Z3_mk_seq_length,mk_seq_index:t._Z3_mk_seq_index,mk_seq_last_index:t._Z3_mk_seq_last_index,mk_seq_map:t._Z3_mk_seq_map,mk_seq_mapi:t._Z3_mk_seq_mapi,mk_seq_foldl:t._Z3_mk_seq_foldl,mk_seq_foldli:t._Z3_mk_seq_foldli,mk_str_to_int:t._Z3_mk_str_to_int,mk_int_to_str:t._Z3_mk_int_to_str,mk_string_to_code:t._Z3_mk_string_to_code,mk_string_from_code:t._Z3_mk_string_from_code,mk_ubv_to_str:t._Z3_mk_ubv_to_str,mk_sbv_to_str:t._Z3_mk_sbv_to_str,mk_seq_to_re:t._Z3_mk_seq_to_re,mk_seq_in_re:t._Z3_mk_seq_in_re,mk_re_plus:t._Z3_mk_re_plus,mk_re_star:t._Z3_mk_re_star,mk_re_option:t._Z3_mk_re_option,mk_re_union:function(s,n){return t.ccall("Z3_mk_re_union","number",["number","number","array"],[s,n.length,u(n)])},mk_re_concat:function(s,n){return t.ccall("Z3_mk_re_concat","number",["number","number","array"],[s,n.length,u(n)])},mk_re_range:t._Z3_mk_re_range,mk_re_allchar:t._Z3_mk_re_allchar,mk_re_loop:t._Z3_mk_re_loop,mk_re_power:t._Z3_mk_re_power,mk_re_intersect:function(s,n){return t.ccall("Z3_mk_re_intersect","number",["number","number","array"],[s,n.length,u(n)])},mk_re_complement:t._Z3_mk_re_complement,mk_re_diff:t._Z3_mk_re_diff,mk_re_empty:t._Z3_mk_re_empty,mk_re_full:t._Z3_mk_re_full,mk_char:t._Z3_mk_char,mk_char_le:t._Z3_mk_char_le,mk_char_to_int:t._Z3_mk_char_to_int,mk_char_to_bv:t._Z3_mk_char_to_bv,mk_char_from_bv:t._Z3_mk_char_from_bv,mk_char_is_digit:t._Z3_mk_char_is_digit,mk_linear_order:t._Z3_mk_linear_order,mk_partial_order:t._Z3_mk_partial_order,mk_piecewise_linear_order:t._Z3_mk_piecewise_linear_order,mk_tree_order:t._Z3_mk_tree_order,mk_transitive_closure:t._Z3_mk_transitive_closure,mk_pattern:function(s,n){return t.ccall("Z3_mk_pattern","number",["number","number","array"],[s,n.length,u(n)])},mk_bound:t._Z3_mk_bound,mk_forall:function(s,n,o,h,v,Z){if(h.length!==v.length)throw new TypeError(`sorts and decl_names must be the same length (got ${h.length} and {decl_names.length})`);return t.ccall("Z3_mk_forall","number",["number","number","number","array","number","array","array","number"],[s,n,o.length,u(o),h.length,u(h),u(v),Z])},mk_exists:function(s,n,o,h,v,Z){if(h.length!==v.length)throw new TypeError(`sorts and decl_names must be the same length (got ${h.length} and {decl_names.length})`);return t.ccall("Z3_mk_exists","number",["number","number","number","array","number","array","array","number"],[s,n,o.length,u(o),h.length,u(h),u(v),Z])},mk_quantifier:function(s,n,o,h,v,Z,d){if(v.length!==Z.length)throw new TypeError(`sorts and decl_names must be the same length (got ${v.length} and {decl_names.length})`);return t.ccall("Z3_mk_quantifier","number",["number","boolean","number","number","array","number","array","array","number"],[s,n,o,h.length,u(h),v.length,u(v),u(Z),d])},mk_quantifier_ex:function(s,n,o,h,v,Z,d,V,X,m){if(V.length!==X.length)throw new TypeError(`sorts and decl_names must be the same length (got ${V.length} and {decl_names.length})`);return t.ccall("Z3_mk_quantifier_ex","number",["number","boolean","number","number","number","number","array","number","array","number","array","array","number"],[s,n,o,h,v,Z.length,u(Z),d.length,u(d),V.length,u(V),u(X),m])},mk_forall_const:function(s,n,o,h,v){return t.ccall("Z3_mk_forall_const","number",["number","number","number","array","number","array","number"],[s,n,o.length,u(o),h.length,u(h),v])},mk_exists_const:function(s,n,o,h,v){return t.ccall("Z3_mk_exists_const","number",["number","number","number","array","number","array","number"],[s,n,o.length,u(o),h.length,u(h),v])},mk_quantifier_const:function(s,n,o,h,v,Z){return t.ccall("Z3_mk_quantifier_const","number",["number","boolean","number","number","array","number","array","number"],[s,n,o,h.length,u(h),v.length,u(v),Z])},mk_quantifier_const_ex:function(s,n,o,h,v,Z,d,V,X){return t.ccall("Z3_mk_quantifier_const_ex","number",["number","boolean","number","number","number","number","array","number","array","number","array","number"],[s,n,o,h,v,Z.length,u(Z),d.length,u(d),V.length,u(V),X])},mk_lambda:function(s,n,o,h){if(n.length!==o.length)throw new TypeError(`sorts and decl_names must be the same length (got ${n.length} and {decl_names.length})`);return t.ccall("Z3_mk_lambda","number",["number","number","array","array","number"],[s,n.length,u(n),u(o),h])},mk_lambda_const:function(s,n,o){return t.ccall("Z3_mk_lambda_const","number",["number","number","array","number"],[s,n.length,u(n),o])},get_symbol_kind:t._Z3_get_symbol_kind,get_symbol_int:t._Z3_get_symbol_int,get_symbol_string:function(s,n){return t.ccall("Z3_get_symbol_string","string",["number","number"],[s,n])},get_sort_name:t._Z3_get_sort_name,get_sort_id:function(s,n){let o=t.ccall("Z3_get_sort_id","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},sort_to_ast:t._Z3_sort_to_ast,is_eq_sort:function(s,n,o){return t.ccall("Z3_is_eq_sort","boolean",["number","number","number"],[s,n,o])},get_sort_kind:t._Z3_get_sort_kind,get_bv_sort_size:function(s,n){let o=t.ccall("Z3_get_bv_sort_size","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_finite_domain_sort_size:function(s,n){return t.ccall("Z3_get_finite_domain_sort_size","boolean",["number","number","number"],[s,n,b])?N(0):null},get_array_arity:function(s,n){let o=t.ccall("Z3_get_array_arity","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_array_sort_domain:t._Z3_get_array_sort_domain,get_array_sort_domain_n:t._Z3_get_array_sort_domain_n,get_array_sort_range:t._Z3_get_array_sort_range,get_tuple_sort_mk_decl:t._Z3_get_tuple_sort_mk_decl,get_tuple_sort_num_fields:function(s,n){let o=t.ccall("Z3_get_tuple_sort_num_fields","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_tuple_sort_field_decl:t._Z3_get_tuple_sort_field_decl,is_recursive_datatype_sort:function(s,n){return t.ccall("Z3_is_recursive_datatype_sort","boolean",["number","number"],[s,n])},get_datatype_sort_num_constructors:function(s,n){let o=t.ccall("Z3_get_datatype_sort_num_constructors","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_datatype_sort_constructor:t._Z3_get_datatype_sort_constructor,get_datatype_sort_recognizer:t._Z3_get_datatype_sort_recognizer,get_datatype_sort_constructor_accessor:t._Z3_get_datatype_sort_constructor_accessor,datatype_update_field:t._Z3_datatype_update_field,get_relation_arity:function(s,n){let o=t.ccall("Z3_get_relation_arity","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_relation_column:t._Z3_get_relation_column,mk_atmost:function(s,n,o){return t.ccall("Z3_mk_atmost","number",["number","number","array","number"],[s,n.length,u(n),o])},mk_atleast:function(s,n,o){return t.ccall("Z3_mk_atleast","number",["number","number","array","number"],[s,n.length,u(n),o])},mk_pble:function(s,n,o,h){if(n.length!==o.length)throw new TypeError(`args and coeffs must be the same length (got ${n.length} and {coeffs.length})`);return t.ccall("Z3_mk_pble","number",["number","number","array","array","number"],[s,n.length,u(n),u(o),h])},mk_pbge:function(s,n,o,h){if(n.length!==o.length)throw new TypeError(`args and coeffs must be the same length (got ${n.length} and {coeffs.length})`);return t.ccall("Z3_mk_pbge","number",["number","number","array","array","number"],[s,n.length,u(n),u(o),h])},mk_pbeq:function(s,n,o,h){if(n.length!==o.length)throw new TypeError(`args and coeffs must be the same length (got ${n.length} and {coeffs.length})`);return t.ccall("Z3_mk_pbeq","number",["number","number","array","array","number"],[s,n.length,u(n),u(o),h])},func_decl_to_ast:t._Z3_func_decl_to_ast,is_eq_func_decl:function(s,n,o){return t.ccall("Z3_is_eq_func_decl","boolean",["number","number","number"],[s,n,o])},get_func_decl_id:function(s,n){let o=t.ccall("Z3_get_func_decl_id","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_decl_name:t._Z3_get_decl_name,get_decl_kind:t._Z3_get_decl_kind,get_domain_size:function(s,n){let o=t.ccall("Z3_get_domain_size","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_arity:function(s,n){let o=t.ccall("Z3_get_arity","number",["number","number"],[s,n]);return o=new Uint32Array([o])[0],o},get_domain:t._Z3_get_domain,get_range:t._Z3_get_range,get_decl_num_para