js-randomness-predictor
Version:
Predict Math.random output in Node, Deno, Bun, Chrome, Firefox, and Safari
1 lines • 144 kB
JavaScript
(function(B,bt){typeof exports=="object"&&typeof module<"u"?bt(exports):typeof define=="function"&&define.amd?define(["exports"],bt):(B=typeof globalThis<"u"?globalThis:B||self,bt(B.JSRandomnessPredictor={}))})(this,(function(B){"use strict";function bt(l,u){for(var t=0;t<u.length;t++){const i=u[t];if(typeof i!="string"&&!Array.isArray(i)){for(const f in i)if(f!=="default"&&!(f in l)){const b=Object.getOwnPropertyDescriptor(i,f);b&&Object.defineProperty(l,f,b.get?b:{enumerable:!0,get:()=>i[f]})}}}return Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}class gt extends Error{constructor(u){u=u===void 0?"Cannot solve state. Unable to make accurate predictions.":u,super(u),this.name="UnsatError",Object.setPrototypeOf(this,new.target.prototype)}}class qe extends Error{constructor(u){super(u),this.name="InsufficientSequenceLengthError",Object.setPrototypeOf(this,new.target.prototype)}}class dt extends Error{constructor(u){super(u),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!==void 0&&navigator.userAgent.indexOf("Chrome")>-1}static isSafari(){return typeof window!==void 0&&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 P_(){if(ht.isChrome())return"chrome";if(ht.isSafari())return"safari";if(ht.isFirefox())return"firefox"}async function E_(){const l="https://z3-tawny.vercel.app/z3-built.js",u="https://z3-tawny.vercel.app/z3-built.wasm";try{const[i,f]=await Promise.all([fetch(l),fetch(u)]);(!i.ok||!f.ok)&&console.error("js-randomness-predictor Failed to fetch z3 files",{jsResponse:i.ok,wasmResponse:f.ok});const b=await i.text(),p=new Blob([b],{type:"text/javascript"}),P=URL.createObjectURL(p);var t={locateFile:(E,e)=>E.endsWith(".wasm")?u:e+E,onRuntimeInitialized:()=>{console.log("js-randomness-predictor initialized.")},wasmBinaryFile:u,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(i){console.error("js-randomness-predictor an error occurred during loading:",i)}}let re;async function Ot(){if(re)return{...re};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 l=window.initZ3,u=async()=>await l(window.Module),t=await(await Promise.resolve().then(()=>x_)).init(u),{createApi:i}=await Promise.resolve().then(()=>V_),f={...t,...i(t.Z3)};return re={...f},f}function j(l){return l&0xffffffffffffffffn}class q{constructor(){}static symbolic(u){let t=u[0];t=t.xor(t.shl(23)),t=t.xor(t.lshr(17)),t=t.xor(u[1]),t=t.xor(u[1].lshr(26)),u[0]=u[1],u[1]=t}static symbolicArithmeticShiftRight(u){let t=u[0];t=t.xor(t.shl(23)),t=t.xor(t.shr(17)),t=t.xor(u[1]),t=t.xor(u[1].shr(26)),u[0]=u[1],u[1]=t}static concreteBackwards(u){let t=u[1]^u[0]>>26n^u[0];t=j(t^t>>17n^t>>34n^t>>51n),t=j(t^t<<23n^t<<46n),u[1]=u[0],u[0]=t}static concrete(u){let t=u[0];t^=j(t<<23n),t^=j(t>>17n),t^=u[1],t^=j(u[1]>>26n),u[0]=u[1],u[1]=t}static concreteArithmeticShiftRight(u){let t=j(u[0]);t^=j(t<<23n),t^=this.#r(t,17n),t^=u[1],t^=this.#r(u[1],26n),u[0]=u[1],u[1]=j(t)}static#r(u,t){const i=j(u>>t);if((u&1n<<63n)===0n)return i;const b=(1n<<t)-1n<<64n-t;return i|b}}class Ce{#r=Math.pow(2,53);#t=[0n,0n];constructor(u){this.sequence=u}async predictNext(){this.#t[0]===0n&&this.#t[1]===0n&&await this.#e();const u=this.#n(this.#t[0]);return q.concreteBackwards(this.#t),u}async#e(){try{const{Context:u}=await Ot(),t=u("main"),i=new t.Solver,f=t.BitVec.const("ss0",64),b=t.BitVec.const("ss1",64),p=[f,b],P=[...this.sequence].reverse();for(const E of P){q.symbolic(p);const e=this.#_(E);i.add(p[0].lshr(11).eq(t.BitVec.val(e,64)))}if(await i.check()!=="sat")throw new gt;const a=i.model();this.#t=[a.get(f).value(),a.get(b).value()]}catch(u){return Promise.reject(u)}}#_(u){const t=Math.floor(u*this.#r);return BigInt(t)}#n(u){return Number(u>>11n)/this.#r}}class ze{#r=0x1fffffffffffffn;#t=Math.pow(2,53);#e=[0n,0n];constructor(u){this.sequence=u}async predictNext(){return this.#e[0]===0n&&this.#e[1]===0n&&await this.#_(),q.concrete(this.#e),this.#o(j(this.#e[0]+this.#e[1]))}async#_(){try{const{Context:u}=await Ot(),t=u("main"),i=new t.Solver,f=t.BitVec.const("ss0",64),b=t.BitVec.const("ss1",64),p=[f,b];for(const E of this.sequence){q.symbolic(p);const e=this.#n(E),w=p[0].add(p[1]).and(t.BitVec.val(this.#r,64));i.add(w.eq(t.BitVec.val(e,64)))}if(await i.check()!=="sat")throw new gt;const P=i.model(),a=[P.get(f).value(),P.get(b).value()];for(const E of this.sequence)q.concrete(a);this.#e=a}catch(u){return Promise.reject(u)}}#n(u){return BigInt(Math.floor(u*this.#t))}#o(u){return Number(u&this.#r)/this.#t}}class Ve{#r=64;#t=4;#e=0x000fffffffffffffn;#_=0x3ff0000000000000n;#n=Math.pow(2,53);#o=this.#u();#a;#s=[0n,0n];constructor(u){if(u&&u.length>=this.#r)throw new Error(`sequence.length must be less than '${this.#r}', got '${u.length}'`);if(!u){if(!ht.isNode())throw new dt("Expected NodeJS runtime! Unable to auto-generate sequence, please provide one.");u=Array.from({length:this.#t},Math.random)}this.sequence=u,this.#a=this.#i()}async predictNext(){this.#s[0]===0n&&this.#s[1]===0n&&await this.#c();const u=this.#a.toDouble(this.#s);return q.concreteBackwards(this.#s),u}setNodeVersion(u){this.#o=u,this.#a=this.#i()}#u(){const[u,t,i]=process.versions.node.split(".").map(Number);return{major:u,minor:t,patch:i}}#i(){const{major:u}=this.#o;return u<=11?{recoverMantissa:t=>{const i=Buffer.alloc(8);return i.writeDoubleLE(t+1,0),i.readBigUInt64LE(0)&this.#e},toDouble:t=>{const i=t[0]+t[1],f=Buffer.alloc(8);return f.writeBigUInt64LE(i&this.#e|this.#_,0),f.readDoubleLE(0)-1},constrainMantissa:(t,i,f,b)=>{const p=i[0].add(i[1]).and(b.BitVec.val(this.#e,64));f.add(p.eq(b.BitVec.val(t,64)))}}:u<=23?{recoverMantissa:t=>{const i=Buffer.alloc(8);return i.writeDoubleLE(t+1,0),i.readBigUInt64LE(0)&this.#e},toDouble:t=>{const i=Buffer.alloc(8);return i.writeBigUInt64LE(t[0]>>12n|this.#_,0),i.readDoubleLE(0)-1},constrainMantissa:(t,i,f,b)=>{f.add(i[0].lshr(12).eq(b.BitVec.val(t,64)))}}:{recoverMantissa:t=>{const i=Math.floor(t*this.#n);return BigInt(i)},toDouble:t=>Number(t[0]>>11n)/this.#n,constrainMantissa:(t,i,f,b)=>{f.add(i[0].lshr(11).eq(b.BitVec.val(t,64)))}}}async#c(){try{const{Context:u}=await Ot(),t=u("main"),i=new t.Solver,f=t.BitVec.const("ss0",64),b=t.BitVec.const("ss1",64),p=[f,b],P=[...this.sequence].reverse();for(const E of P){q.symbolic(p);const e=this.#a.recoverMantissa(E);this.#a.constrainMantissa(e,p,i,t)}if(await i.check()!=="sat")throw new gt;const a=i.model();this.#s=[a.get(f).value(),a.get(b).value()]}catch(u){return Promise.reject(u)}}}class Ge{#r=6;#t=[0n,0n];#e;#_;#n=0x1fffffffffffffn;#o=Math.pow(2,53);constructor(u){if(u.length<this.#r)throw new qe(`sequence length must be >= 6 : got ${u.length}`);this.#e=t=>q.symbolicArithmeticShiftRight(t),this.#_=t=>q.concreteArithmeticShiftRight(t),this.sequence=u}async predictNext(){return this.#t[0]===0n&&this.#t[1]===0n&&await this.#a(()=>this.#s(),()=>(this.#e=u=>q.symbolic(u),this.#_=u=>q.concrete(u),this.#s())),this.#_(this.#t),this.#i(j(this.#t[0]+this.#t[1]))}async#a(u,t){try{return await u()}catch{return await t()}}async#s(){try{const{Context:u}=await Ot(),t=u("main"),i=new t.Solver,f=t.BitVec.const("ss0",64),b=t.BitVec.const("ss1",64),p=[f,b];for(const E of this.sequence){this.#e(p);const e=this.#u(E),w=p[0].add(p[1]).and(t.BitVec.val(this.#n,64));i.add(w.eq(t.BitVec.val(e,64)))}if(await i.check()!=="sat")throw new gt;const P=i.model(),a=[P.get(f).value(),P.get(b).value()];for(const E of this.sequence)this.#_(a);this.#t=a}catch(u){return Promise.reject(u)}}#u(u){return BigInt(Math.floor(u*this.#o))}#i(u){return Number(u&this.#n)/this.#o}}function y_(l=1){const u=[];for(let t=0;t<l;t++)u.push(Math.random());return u}class Qe{#r=6;#t=[0n,0n];#e=u=>q.symbolic(u);#_=u=>q.concrete(u);#n=0x1fffffffffffffn;#o=Math.pow(2,53);constructor(u){if(u&&u.length<this.#r)throw new qe(`sequence length must be >= 6 : got ${u.length}`);if(!u){if(!ht.isBun())throw new dt("Expected Bun runtime! Unable to auto-generate sequence, please provide one.");u=y_(this.#r)}this.sequence=u}async predictNext(){return this.#t[0]===0n&&this.#t[1]===0n&&await this.#a(()=>this.#s(),()=>(this.#e=u=>q.symbolicArithmeticShiftRight(u),this.#_=u=>q.concreteArithmeticShiftRight(u),this.#s())),this.#_(this.#t),this.#i(j(this.#t[0]+this.#t[1]))}async#a(u,t){try{return await u()}catch{return await t()}}async#s(){try{const{Context:u}=await Ot(),t=u("main"),i=new t.Solver,f=t.BitVec.const("ss0",64),b=t.BitVec.const("ss1",64),p=[f,b];for(const E of this.sequence){this.#e(p);const e=this.#u(E),w=p[0].add(p[1]).and(t.BitVec.val(this.#n,64));i.add(w.eq(t.BitVec.val(e,64)))}if(await i.check()!=="sat")throw new gt;const P=i.model(),a=[P.get(f).value(),P.get(b).value()];for(const E of this.sequence)this.#_(a);this.#t=a}catch(u){return Promise.reject(u)}}#u(u){return BigInt(Math.floor(u*this.#o))}#i(u){return Number(u&this.#n)/this.#o}}class je{#r=Math.pow(2,53);#t=[0n,0n];constructor(u){if(!u){if(!ht.isDeno())throw new dt("Expected Deno runtime! Unable to auto-generate sequence, please provide one.");u=Array.from({length:4},Math.random)}this.sequence=u}async predictNext(){this.#t[0]===0n&&this.#t[1]===0n&&await this.#e();const u=this.#n(this.#t[0]);return q.concreteBackwards(this.#t),u}async#e(){try{const{Context:u}=await Ot(),t=u("main"),i=new t.Solver,f=t.BitVec.const("ss0",64),b=t.BitVec.const("ss1",64),p=[f,b],P=[...this.sequence].reverse();for(const E of P){q.symbolic(p);const e=this.#_(E);i.add(p[0].lshr(11).eq(t.BitVec.val(e,64)))}if(await i.check()!=="sat")throw new gt;const a=i.model();this.#t=[a.get(f).value(),a.get(b).value()]}catch(u){return Promise.reject(u)}}#_(u){const t=Math.floor(u*this.#r);return BigInt(t)}#n(u){return Number(u>>11n)/this.#r}}E_();const v_=l=>new Ve(l),R_=l=>new ze(l),A_=l=>new Ce(l),T_=l=>new Ge(l),w_=l=>new Qe(l),S_=l=>new je(l);var Z_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function I_(l){if(Object.prototype.hasOwnProperty.call(l,"__esModule"))return l;var u=l.default;if(typeof u=="function"){var t=function i(){var f=!1;try{f=this instanceof i}catch{}return f?Reflect.construct(u,arguments,this.constructor):u.apply(this,arguments)};t.prototype=u.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(l).forEach(function(i){var f=Object.getOwnPropertyDescriptor(l,i);Object.defineProperty(t,i,f.get?f:{enumerable:!0,get:function(){return l[i]}})}),t}var ot={},U={},$e;function N_(){if($e)return U;$e=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 l;(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"})(l||(U.Z3_lbool=l={}));var u;(function(e){e[e.Z3_INT_SYMBOL=0]="Z3_INT_SYMBOL",e[e.Z3_STRING_SYMBOL=1]="Z3_STRING_SYMBOL"})(u||(U.Z3_symbol_kind=u={}));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 i;(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"})(i||(U.Z3_sort_kind=i={}));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 b;(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"})(b||(U.Z3_decl_kind=b={}));var p;(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"})(p||(U.Z3_param_kind=p={}));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 xt={},Ye;function L_(){if(Ye)return xt;Ye=1,Object.defineProperty(xt,"__esModule",{value:!0}),xt.init=l;async function l(u){let t=await u();function i(s){return new Uint8Array(new Uint32Array(s).buffer)}function f(s){return s.map(_=>_?1:0)}function b(s,_){return Array.from(new Uint32Array(t.HEAPU32.buffer,s,_))}let p=t._malloc(24),P=new Uint32Array(t.HEAPU32.buffer,p,4),a=s=>P[s],E=new Int32Array(t.HEAPU32.buffer,p,4),e=s=>E[s],w=new BigUint64Array(t.HEAPU32.buffer,p,2),N=s=>w[s],R=new BigInt64Array(t.HEAPU32.buffer,p,2),d=s=>R[s];return{em:t,Z3:{mk_context:function(s){let _=t._Z3_mk_context(s);return t._set_noop_error_handler(_),_},mk_context_rc:function(s){let _=t._Z3_mk_context_rc(s);return t._set_noop_error_handler(_),_},global_param_set:function(s,_){return t.ccall("Z3_global_param_set","void",["string","string"],[s,_])},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,p])?t.UTF8ToString(a(0)):null},mk_config:t._Z3_mk_config,del_config:t._Z3_del_config,set_param_value:function(s,_,o){return t.ccall("Z3_set_param_value","void",["number","string","string"],[s,_,o])},del_context:t._Z3_del_context,inc_ref:t._Z3_inc_ref,dec_ref:t._Z3_dec_ref,update_param_value:function(s,_,o){return t.ccall("Z3_update_param_value","void",["number","string","string"],[s,_,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,_){return t.ccall("Z3_params_to_string","string",["number","number"],[s,_])},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,_){let o=t.ccall("Z3_param_descrs_size","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},param_descrs_get_name:t._Z3_param_descrs_get_name,param_descrs_get_documentation:function(s,_,o){return t.ccall("Z3_param_descrs_get_documentation","string",["number","number","number"],[s,_,o])},param_descrs_to_string:function(s,_){return t.ccall("Z3_param_descrs_to_string","string",["number","number"],[s,_])},mk_int_symbol:t._Z3_mk_int_symbol,mk_string_symbol:function(s,_){return t.ccall("Z3_mk_string_symbol","number",["number","string"],[s,_])},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,_,o){return t.ccall("Z3_mk_array_sort_n","number",["number","number","array","number"],[s,_.length,i(_),o])},mk_tuple_sort:function(s,_,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,_,o.length,i(o),i(h),p,v]),mk_tuple_decl:a(0),proj_decl:b(v,o.length)}}finally{t._free(v)}},mk_enumeration_sort:function(s,_,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,_,o.length,i(o),h,v]),enum_consts:b(h,o.length),enum_testers:b(v,o.length)}}finally{t._free(v)}}finally{t._free(h)}},mk_list_sort:function(s,_,o){return{rv:t.ccall("Z3_mk_list_sort","number",["number","number","number","number","number","number","number","number","number"],[s,_,o,p,p+4,p+8,p+12,p+16,p+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,_,o,h,v,I){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!==I.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,_,o,h.length,i(h),i(v),i(I)])},constructor_num_fields:function(s,_){let o=t.ccall("Z3_constructor_num_fields","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},del_constructor:t._Z3_del_constructor,mk_datatype:function(s,_,o){return t.ccall("Z3_mk_datatype","number",["number","number","number","array"],[s,_,o.length,i(o)])},mk_datatype_sort:t._Z3_mk_datatype_sort,mk_constructor_list:function(s,_){return t.ccall("Z3_mk_constructor_list","number",["number","number","array"],[s,_.length,i(_)])},del_constructor_list:t._Z3_del_constructor_list,mk_datatypes:function(s,_,o){if(_.length!==o.length)throw new TypeError(`sort_names and constructor_lists must be the same length (got ${_.length} and {constructor_lists.length})`);let h=t._malloc(4*_.length);try{let v=t.ccall("Z3_mk_datatypes","void",["number","number","array","number","array"],[s,_.length,i(_),h,i(o)]);return b(h,_.length)}finally{t._free(h)}},query_constructor:function(s,_,o){let h=t._malloc(4*o);try{let v=t.ccall("Z3_query_constructor","void",["number","number","number","number","number","number"],[s,_,o,p,p+4,h]);return{constructor:a(0),tester:a(1),accessors:b(h,o)}}finally{t._free(h)}},mk_func_decl:function(s,_,o,h){return t.ccall("Z3_mk_func_decl","number",["number","number","number","array","number"],[s,_,o.length,i(o),h])},mk_app:function(s,_,o){return t.ccall("Z3_mk_app","number",["number","number","number","array"],[s,_,o.length,i(o)])},mk_const:t._Z3_mk_const,mk_fresh_func_decl:function(s,_,o,h){return t.ccall("Z3_mk_fresh_func_decl","number",["number","string","number","array","number"],[s,_,o.length,i(o),h])},mk_fresh_const:function(s,_,o){return t.ccall("Z3_mk_fresh_const","number",["number","string","number"],[s,_,o])},mk_rec_func_decl:function(s,_,o,h){return t.ccall("Z3_mk_rec_func_decl","number",["number","number","number","array","number"],[s,_,o.length,i(o),h])},add_rec_def:function(s,_,o,h){return t.ccall("Z3_add_rec_def","void",["number","number","number","array","number"],[s,_,o.length,i(o),h])},mk_true:t._Z3_mk_true,mk_false:t._Z3_mk_false,mk_eq:t._Z3_mk_eq,mk_distinct:function(s,_){return t.ccall("Z3_mk_distinct","number",["number","number","array"],[s,_.length,i(_)])},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,_){return t.ccall("Z3_mk_and","number",["number","number","array"],[s,_.length,i(_)])},mk_or:function(s,_){return t.ccall("Z3_mk_or","number",["number","number","array"],[s,_.length,i(_)])},mk_add:function(s,_){return t.ccall("Z3_mk_add","number",["number","number","array"],[s,_.length,i(_)])},mk_mul:function(s,_){return t.ccall("Z3_mk_mul","number",["number","number","array"],[s,_.length,i(_)])},mk_sub:function(s,_){return t.ccall("Z3_mk_sub","number",["number","number","array"],[s,_.length,i(_)])},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,_,o){return t.ccall("Z3_mk_select_n","number",["number","number","number","array"],[s,_,o.length,i(o)])},mk_store:t._Z3_mk_store,mk_store_n:function(s,_,o,h){return t.ccall("Z3_mk_store_n","number",["number","number","number","array","number"],[s,_,o.length,i(o),h])},mk_const_array:t._Z3_mk_const_array,mk_map:function(s,_,o){return t.ccall("Z3_mk_map","number",["number","number","number","array"],[s,_,o.length,i(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,_){return t.ccall("Z3_mk_set_union","number",["number","number","array"],[s,_.length,i(_)])},mk_set_intersect:function(s,_){return t.ccall("Z3_mk_set_intersect","number",["number","number","array"],[s,_.length,i(_)])},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,_,o){return t.ccall("Z3_mk_numeral","number",["number","string","number"],[s,_,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,_){return t.ccall("Z3_mk_bv_numeral","number",["number","number","array"],[s,_.length,f(_)])},mk_seq_sort:t._Z3_mk_seq_sort,is_seq_sort:function(s,_){return t.ccall("Z3_is_seq_sort","boolean",["number","number"],[s,_])},get_seq_sort_basis:t._Z3_get_seq_sort_basis,mk_re_sort:t._Z3_mk_re_sort,is_re_sort:function(s,_){return t.ccall("Z3_is_re_sort","boolean",["number","number"],[s,_])},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,_){return t.ccall("Z3_is_string_sort","boolean",["number","number"],[s,_])},is_char_sort:function(s,_){return t.ccall("Z3_is_char_sort","boolean",["number","number"],[s,_])},mk_string:function(s,_){return t.ccall("Z3_mk_string","number",["number","string"],[s,_])},mk_lstring:function(s,_,o){return t.ccall("Z3_mk_lstring","number",["number","number","string"],[s,_,o])},mk_u32string:function(s,_){return t.ccall("Z3_mk_u32string","number",["number","number","array"],[s,_.length,i(_)])},is_string:function(s,_){return t.ccall("Z3_is_string","boolean",["number","number"],[s,_])},get_string:function(s,_){return t.ccall("Z3_get_string","string",["number","number"],[s,_])},get_string_length:function(s,_){let o=t.ccall("Z3_get_string_length","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_string_contents:function(s,_,o){let h=t._malloc(4*o);try{let v=t.ccall("Z3_get_string_contents","void",["number","number","number","number"],[s,_,o,h]);return b(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,_){return t.ccall("Z3_mk_seq_concat","number",["number","number","array"],[s,_.length,i(_)])},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,_){return t.ccall("Z3_mk_re_union","number",["number","number","array"],[s,_.length,i(_)])},mk_re_concat:function(s,_){return t.ccall("Z3_mk_re_concat","number",["number","number","array"],[s,_.length,i(_)])},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,_){return t.ccall("Z3_mk_re_intersect","number",["number","number","array"],[s,_.length,i(_)])},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,_){return t.ccall("Z3_mk_pattern","number",["number","number","array"],[s,_.length,i(_)])},mk_bound:t._Z3_mk_bound,mk_forall:function(s,_,o,h,v,I){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,_,o.length,i(o),h.length,i(h),i(v),I])},mk_exists:function(s,_,o,h,v,I){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,_,o.length,i(o),h.length,i(h),i(v),I])},mk_quantifier:function(s,_,o,h,v,I,L){if(v.length!==I.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,_,o,h.length,i(h),v.length,i(v),i(I),L])},mk_quantifier_ex:function(s,_,o,h,v,I,L,z,$,c){if(z.length!==$.length)throw new TypeError(`sorts and decl_names must be the same length (got ${z.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,_,o,h,v,I.length,i(I),L.length,i(L),z.length,i(z),i($),c])},mk_forall_const:function(s,_,o,h,v){return t.ccall("Z3_mk_forall_const","number",["number","number","number","array","number","array","number"],[s,_,o.length,i(o),h.length,i(h),v])},mk_exists_const:function(s,_,o,h,v){return t.ccall("Z3_mk_exists_const","number",["number","number","number","array","number","array","number"],[s,_,o.length,i(o),h.length,i(h),v])},mk_quantifier_const:function(s,_,o,h,v,I){return t.ccall("Z3_mk_quantifier_const","number",["number","boolean","number","number","array","number","array","number"],[s,_,o,h.length,i(h),v.length,i(v),I])},mk_quantifier_const_ex:function(s,_,o,h,v,I,L,z,$){return t.ccall("Z3_mk_quantifier_const_ex","number",["number","boolean","number","number","number","number","array","number","array","number","array","number"],[s,_,o,h,v,I.length,i(I),L.length,i(L),z.length,i(z),$])},mk_lambda:function(s,_,o,h){if(_.length!==o.length)throw new TypeError(`sorts and decl_names must be the same length (got ${_.length} and {decl_names.length})`);return t.ccall("Z3_mk_lambda","number",["number","number","array","array","number"],[s,_.length,i(_),i(o),h])},mk_lambda_const:function(s,_,o){return t.ccall("Z3_mk_lambda_const","number",["number","number","array","number"],[s,_.length,i(_),o])},get_symbol_kind:t._Z3_get_symbol_kind,get_symbol_int:t._Z3_get_symbol_int,get_symbol_string:function(s,_){return t.ccall("Z3_get_symbol_string","string",["number","number"],[s,_])},get_sort_name:t._Z3_get_sort_name,get_sort_id:function(s,_){let o=t.ccall("Z3_get_sort_id","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},sort_to_ast:t._Z3_sort_to_ast,is_eq_sort:function(s,_,o){return t.ccall("Z3_is_eq_sort","boolean",["number","number","number"],[s,_,o])},get_sort_kind:t._Z3_get_sort_kind,get_bv_sort_size:function(s,_){let o=t.ccall("Z3_get_bv_sort_size","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_finite_domain_sort_size:function(s,_){return t.ccall("Z3_get_finite_domain_sort_size","boolean",["number","number","number"],[s,_,p])?N(0):null},get_array_arity:function(s,_){let o=t.ccall("Z3_get_array_arity","number",["number","number"],[s,_]);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,_){let o=t.ccall("Z3_get_tuple_sort_num_fields","number",["number","number"],[s,_]);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,_){return t.ccall("Z3_is_recursive_datatype_sort","boolean",["number","number"],[s,_])},get_datatype_sort_num_constructors:function(s,_){let o=t.ccall("Z3_get_datatype_sort_num_constructors","number",["number","number"],[s,_]);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,_){let o=t.ccall("Z3_get_relation_arity","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_relation_column:t._Z3_get_relation_column,mk_atmost:function(s,_,o){return t.ccall("Z3_mk_atmost","number",["number","number","array","number"],[s,_.length,i(_),o])},mk_atleast:function(s,_,o){return t.ccall("Z3_mk_atleast","number",["number","number","array","number"],[s,_.length,i(_),o])},mk_pble:function(s,_,o,h){if(_.length!==o.length)throw new TypeError(`args and coeffs must be the same length (got ${_.length} and {coeffs.length})`);return t.ccall("Z3_mk_pble","number",["number","number","array","array","number"],[s,_.length,i(_),i(o),h])},mk_pbge:function(s,_,o,h){if(_.length!==o.length)throw new TypeError(`args and coeffs must be the same length (got ${_.length} and {coeffs.length})`);return t.ccall("Z3_mk_pbge","number",["number","number","array","array","number"],[s,_.length,i(_),i(o),h])},mk_pbeq:function(s,_,o,h){if(_.length!==o.length)throw new TypeError(`args and coeffs must be the same length (got ${_.length} and {coeffs.length})`);return t.ccall("Z3_mk_pbeq","number",["number","number","array","array","number"],[s,_.length,i(_),i(o),h])},func_decl_to_ast:t._Z3_func_decl_to_ast,is_eq_func_decl:function(s,_,o){return t.ccall("Z3_is_eq_func_decl","boolean",["number","number","number"],[s,_,o])},get_func_decl_id:function(s,_){let o=t.ccall("Z3_get_func_decl_id","number",["number","number"],[s,_]);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,_){let o=t.ccall("Z3_get_domain_size","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_arity:function(s,_){let o=t.ccall("Z3_get_arity","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_domain:t._Z3_get_domain,get_range:t._Z3_get_range,get_decl_num_parameters:function(s,_){let o=t.ccall("Z3_get_decl_num_parameters","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_decl_parameter_kind:t._Z3_get_decl_parameter_kind,get_decl_int_parameter:t._Z3_get_decl_int_parameter,get_decl_double_parameter:t._Z3_get_decl_double_parameter,get_decl_symbol_parameter:t._Z3_get_decl_symbol_parameter,get_decl_sort_parameter:t._Z3_get_decl_sort_parameter,get_decl_ast_parameter:t._Z3_get_decl_ast_parameter,get_decl_func_decl_parameter:t._Z3_get_decl_func_decl_parameter,get_decl_rational_parameter:function(s,_,o){return t.ccall("Z3_get_decl_rational_parameter","string",["number","number","number"],[s,_,o])},app_to_ast:t._Z3_app_to_ast,get_app_decl:t._Z3_get_app_decl,get_app_num_args:function(s,_){let o=t.ccall("Z3_get_app_num_args","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_app_arg:t._Z3_get_app_arg,is_eq_ast:function(s,_,o){return t.ccall("Z3_is_eq_ast","boolean",["number","number","number"],[s,_,o])},get_ast_id:function(s,_){let o=t.ccall("Z3_get_ast_id","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_ast_hash:function(s,_){let o=t.ccall("Z3_get_ast_hash","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},get_sort:t._Z3_get_sort,is_well_sorted:function(s,_){return t.ccall("Z3_is_well_sorted","boolean",["number","number"],[s,_])},get_bool_value:t._Z3_get_bool_value,get_ast_kind:t._Z3_get_ast_kind,is_app:function(s,_){return t.ccall("Z3_is_app","boolean",["number","number"],[s,_])},is_ground:function(s,_){return t.ccall("Z3_is_ground","boolean",["number","number"],[s,_])},get_depth:function(s,_){let o=t.ccall("Z3_get_depth","number",["number","number"],[s,_]);return o=new Uint32Array([o])[0],o},is_numeral_ast:func