@ohtaman/washi 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.ja.md +124 -22
  2. package/README.md +124 -22
  3. package/README.zh-CN.md +124 -22
  4. package/dist/browser/browser-runtime-D13gHOT5.js +4189 -0
  5. package/dist/browser/highs-worker.js +21 -0
  6. package/dist/{lib/demo → browser}/highs.wasm +0 -0
  7. package/dist/browser/highs.wasm.LICENSE +22 -0
  8. package/dist/browser/loader-CVt4CloI.js +58 -0
  9. package/dist/browser/solvers/glpk.js +1057 -0
  10. package/dist/browser/solvers/glpk.min.js +1 -0
  11. package/dist/browser/solvers/z3-built.js +8245 -0
  12. package/dist/browser/solvers/z3-built.wasm +4 -0
  13. package/dist/browser/solvers/z3.js +7528 -0
  14. package/dist/browser/solvers/z3.min.js +5 -0
  15. package/dist/browser/washi.js +1213 -0
  16. package/dist/browser/washi.min.js +5 -0
  17. package/dist/lib/async-mutex-Duo4jwzn.js +195 -0
  18. package/dist/lib/constraint-XWdn0ID9.js +93 -0
  19. package/dist/lib/highs-assets.js +1 -0
  20. package/dist/lib/highs-browser-runtime.js +4189 -0
  21. package/dist/lib/highs-node-runtime.js +1 -0
  22. package/dist/lib/highs-worker-factory.js +1 -0
  23. package/dist/lib/highs-worker.js +21 -0
  24. package/dist/lib/highs.wasm +0 -0
  25. package/dist/lib/loader-Dti0v9yC.js +50 -0
  26. package/dist/lib/registry-DksqCSjI.js +32 -0
  27. package/dist/lib/solvers/glpk.js +153 -2
  28. package/dist/lib/solvers/z3-assets.js +1 -0
  29. package/dist/lib/solvers/z3-built.js +8245 -0
  30. package/dist/lib/solvers/z3-built.wasm +4 -0
  31. package/dist/lib/solvers/z3.js +451 -2
  32. package/dist/lib/washi.js +388 -78
  33. package/dist/types/index.d.ts +2 -3
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/modeler/index.d.ts +1 -1
  36. package/dist/types/modeler/index.d.ts.map +1 -1
  37. package/dist/types/modeler/model.d.ts +1 -1
  38. package/dist/types/modeler/model.d.ts.map +1 -1
  39. package/dist/types/modeler/solvers/glpk/index.d.ts +3 -0
  40. package/dist/types/modeler/solvers/glpk/index.d.ts.map +1 -0
  41. package/dist/types/modeler/solvers/glpk/loader.d.ts +16 -0
  42. package/dist/types/modeler/solvers/glpk/loader.d.ts.map +1 -0
  43. package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -0
  44. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -0
  45. package/dist/types/modeler/solvers/glpk.d.ts +1 -21
  46. package/dist/types/modeler/solvers/glpk.d.ts.map +1 -1
  47. package/dist/types/modeler/solvers/highs/assets.d.ts +3 -0
  48. package/dist/types/modeler/solvers/highs/assets.d.ts.map +1 -0
  49. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -0
  50. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -0
  51. package/dist/types/modeler/solvers/highs/index.d.ts +6 -0
  52. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -0
  53. package/dist/types/{highs-loader.d.ts → modeler/solvers/highs/loader.d.ts} +3 -3
  54. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -0
  55. package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -0
  56. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -0
  57. package/dist/types/modeler/solvers/highs/solver.d.ts +33 -0
  58. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -0
  59. package/dist/types/modeler/solvers/highs/worker-client.d.ts +13 -0
  60. package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -0
  61. package/dist/types/modeler/solvers/highs/worker-factory.d.ts +3 -0
  62. package/dist/types/modeler/solvers/highs/worker-factory.d.ts.map +1 -0
  63. package/dist/types/modeler/solvers/highs/worker.d.ts +2 -0
  64. package/dist/types/modeler/solvers/highs/worker.d.ts.map +1 -0
  65. package/dist/types/modeler/solvers/highs.d.ts +1 -25
  66. package/dist/types/modeler/solvers/highs.d.ts.map +1 -1
  67. package/dist/types/modeler/solvers/index.d.ts +0 -2
  68. package/dist/types/modeler/solvers/index.d.ts.map +1 -1
  69. package/dist/types/modeler/solvers/mock.d.ts +1 -0
  70. package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
  71. package/dist/types/modeler/solvers/registry.d.ts +1 -2
  72. package/dist/types/modeler/solvers/registry.d.ts.map +1 -1
  73. package/dist/types/modeler/solvers/types.d.ts +1 -1
  74. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  75. package/dist/types/modeler/solvers/z3/assets.d.ts +11 -0
  76. package/dist/types/modeler/solvers/z3/assets.d.ts.map +1 -0
  77. package/dist/types/modeler/solvers/z3/index.d.ts +3 -0
  78. package/dist/types/modeler/solvers/z3/index.d.ts.map +1 -0
  79. package/dist/types/modeler/solvers/z3/loader.d.ts +44 -0
  80. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -0
  81. package/dist/types/modeler/solvers/z3/solver.d.ts +34 -0
  82. package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -0
  83. package/dist/types/modeler/solvers/z3.d.ts +1 -36
  84. package/dist/types/modeler/solvers/z3.d.ts.map +1 -1
  85. package/package.json +35 -9
  86. package/dist/lib/assets/highs-worker-DeDWU6KI.js +0 -3
  87. package/dist/lib/glpk-BC32ZaPG.js +0 -126
  88. package/dist/lib/washi-logo.png +0 -0
  89. package/dist/lib/washi-logo.svg +0 -70
  90. package/dist/lib/z3-C8g-PtmP.js +0 -582
  91. package/dist/types/glpk-loader.d.ts +0 -8
  92. package/dist/types/glpk-loader.d.ts.map +0 -1
  93. package/dist/types/highs-loader.d.ts.map +0 -1
  94. package/dist/types/highs-worker-client.d.ts +0 -12
  95. package/dist/types/highs-worker-client.d.ts.map +0 -1
  96. package/dist/types/highs-worker.d.ts +0 -2
  97. package/dist/types/highs-worker.d.ts.map +0 -1
@@ -0,0 +1,5 @@
1
+ var WashiZ3=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},d=(e,r,i)=>(i=e==null?{}:t(a(e)),u(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>o.call(e,`module.exports`)?e[`module.exports`]:u(n({},`__esModule`,{value:!0}),e),p=0,m=class{and(e){return new g(`and`,[this,e])}or(e){return new g(`or`,[this,e])}implies(e){return new g(`implies`,[this,e])}xor(e){return new g(`xor`,[this,e])}not(){return new g(`not`,[this])}},h=class extends m{id;name;value=null;constructor(e){super(),this.id=++p,this.name=e||`p_${this.id}`}toString(){return this.name}},g=class extends m{op;children;constructor(e,t){super(),this.op=e,this.children=t}toString(){return this.op===`not`?`not(${this.children[0].toString()})`:`(${this.children.map(e=>e.toString()).join(` ${this.op} `)})`}},_=0,ee=class{id;lhs;sense;rhs;name;slack=null;dual=null;constructor(e,t,n,r){this.id=++_,this.lhs=e,this.sense=t,this.rhs=n,this.name=r||`c_${this.id}`}get pi(){return this.dual}and(e){return new g(`and`,[this,e])}or(e){return new g(`or`,[this,e])}implies(e){return new g(`implies`,[this,e])}xor(e){return new g(`xor`,[this,e])}not(){return new g(`not`,[this])}toString(){let e=this.sense===`==`?`=`:this.sense;return`${this.name}: ${this.lhs.toString()} ${e} ${this.rhs}`}},v=Symbol.for(`washi.solverRegistry`),te=globalThis;te[v]||(te[v]=new Map);var ne=te[v];function y(e,t){ne.set(e.toLowerCase(),t)}var b=typeof document<`u`?document.currentScript?.src:null,re=b?new URL(`.`,b).href:null;function ie(e){if(!re)throw Error(`[WaSHI] Load the browser IIFE using an external script src, or use the browser ESM build.`);return new URL(e,re).href}function ae(){return{jsUrl:ie(`z3-built.js`),wasmUrl:ie(`z3-built.wasm`)}}var oe=l({E_ALREADY_LOCKED:()=>ue,E_CANCELED:()=>de,E_TIMEOUT:()=>le,Mutex:()=>C,Semaphore:()=>x,tryAcquire:()=>ce,withTimeout:()=>se});function se(e,t,n=le){return{acquire:()=>new Promise((r,i)=>pe(this,void 0,void 0,function*(){let a=!1,o=setTimeout(()=>{a=!0,i(n)},t);try{let t=yield e.acquire();a?(Array.isArray(t)?t[1]:t)():(clearTimeout(o),r(t))}catch(e){a||(clearTimeout(o),i(e))}})),runExclusive(e){return pe(this,void 0,void 0,function*(){let t=()=>void 0;try{let n=yield this.acquire();return Array.isArray(n)?(t=n[1],yield e(n[0])):(t=n,yield e())}finally{t()}})},release(){e.release()},cancel(){return e.cancel()},waitForUnlock:()=>e.waitForUnlock(),isLocked:()=>e.isLocked()}}function ce(e,t=ue){return se(e,0,t)}var le,ue,de,fe,x,S,C,pe,w=s((()=>{le=Error(`timeout while waiting for mutex to become available`),ue=Error(`mutex already locked`),de=Error(`request for lock canceled`),fe=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},x=class{constructor(e,t=de){if(this._maxConcurrency=e,this._cancelError=t,this._queue=[],this._waiters=[],e<=0)throw Error(`semaphore must be initialized to a positive value`);this._value=e}acquire(){let e=this.isLocked(),t=new Promise((e,t)=>this._queue.push({resolve:e,reject:t}));return e||this._dispatch(),t}runExclusive(e){return fe(this,void 0,void 0,function*(){let[t,n]=yield this.acquire();try{return yield e(t)}finally{n()}})}waitForUnlock(){return fe(this,void 0,void 0,function*(){return this.isLocked()?new Promise(e=>this._waiters.push({resolve:e})):Promise.resolve()})}isLocked(){return this._value<=0}release(){if(this._maxConcurrency>1)throw Error(`this method is unavailable on semaphores with concurrency > 1; use the scoped release returned by acquire instead`);if(this._currentReleaser){let e=this._currentReleaser;this._currentReleaser=void 0,e()}}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatch(){let e=this._queue.shift();if(!e)return;let t=!1;this._currentReleaser=()=>{t||(t=!0,this._value++,this._resolveWaiters(),this._dispatch())},e.resolve([this._value--,this._currentReleaser])}_resolveWaiters(){this._waiters.forEach(e=>e.resolve()),this._waiters=[]}},S=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},C=class{constructor(e){this._semaphore=new x(1,e)}acquire(){return S(this,void 0,void 0,function*(){let[,e]=yield this._semaphore.acquire();return e})}runExclusive(e){return this._semaphore.runExclusive(()=>e())}isLocked(){return this._semaphore.isLocked()}waitForUnlock(){return this._semaphore.waitForUnlock()}release(){this._semaphore.release()}cancel(){return this._semaphore.cancel()}},pe=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}})),T=l({__addDisposableResource:()=>O,__assign:()=>Ve,__asyncDelegator:()=>je,__asyncGenerator:()=>Ae,__asyncValues:()=>Me,__await:()=>ke,__awaiter:()=>E,__classPrivateFieldGet:()=>Ie,__classPrivateFieldIn:()=>Re,__classPrivateFieldSet:()=>Le,__createBinding:()=>He,__decorate:()=>ge,__disposeResources:()=>ze,__esDecorate:()=>ve,__exportStar:()=>we,__extends:()=>me,__generator:()=>Ce,__importDefault:()=>Fe,__importStar:()=>Pe,__makeTemplateObject:()=>Ne,__metadata:()=>Se,__param:()=>_e,__propKey:()=>be,__read:()=>D,__rest:()=>he,__rewriteRelativeImportExtension:()=>Be,__runInitializers:()=>ye,__setFunctionName:()=>xe,__spread:()=>Ee,__spreadArray:()=>Oe,__spreadArrays:()=>De,__values:()=>Te,default:()=>A});function me(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);k(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function he(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ge(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function _e(e,t){return function(n,r){t(n,r,e)}}function ve(e,t,n,r,i,a){function o(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var s=r.kind,c=s===`getter`?`get`:s===`setter`?`set`:`value`,l=!t&&e?r.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,f=!1,p=n.length-1;p>=0;p--){var m={};for(var h in r)m[h]=h===`access`?{}:r[h];for(var h in r.access)m.access[h]=r.access[h];m.addInitializer=function(e){if(f)throw TypeError(`Cannot add initializers after decoration has completed`);a.push(o(e||null))};var g=(0,n[p])(s===`accessor`?{get:u.get,set:u.set}:u[c],m);if(s===`accessor`){if(g===void 0)continue;if(typeof g!=`object`||!g)throw TypeError(`Object expected`);(d=o(g.get))&&(u.get=d),(d=o(g.set))&&(u.set=d),(d=o(g.init))&&i.unshift(d)}else(d=o(g))&&(s===`field`?i.unshift(d):u[c]=d)}l&&Object.defineProperty(l,r.name,u),f=!0}function ye(e,t,n){for(var r=arguments.length>2,i=0;i<t.length;i++)n=r?t[i].call(e,n):t[i].call(e);return r?n:void 0}function be(e){return typeof e==`symbol`?e:`${e}`}function xe(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,"name",{configurable:!0,value:n?`${n} ${t}`:t})}function Se(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function E(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function Ce(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return c([e,t])}}function c(s){if(r)throw TypeError(`Generator is already executing.`);for(;o&&(o=0,s[0]&&(n=0)),n;)try{if(r=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return n.label++,{value:s[1],done:!1};case 5:n.label++,i=s[1],s=[0];continue;case 7:s=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]<a[3])){n.label=s[1];break}if(s[0]===6&&n.label<a[1]){n.label=a[1],a=s;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(s);break}a[2]&&n.ops.pop(),n.trys.pop();continue}s=t.call(e,n)}catch(e){s=[6,e],i=0}finally{r=a=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}function we(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&He(t,e,n)}function Te(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function D(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-->0)&&!(i=r.next()).done;)a.push(i.value)}catch(e){o={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function Ee(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(D(arguments[t]));return e}function De(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var r=Array(e),i=0,t=0;t<n;t++)for(var a=arguments[t],o=0,s=a.length;o<s;o++,i++)r[i]=a[o];return r}function Oe(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}function ke(e){return this instanceof ke?(this.v=e,this):new ke(e)}function Ae(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),s(`next`),s(`throw`),s(`return`,o),i[Symbol.asyncIterator]=function(){return this},i;function o(e){return function(t){return Promise.resolve(t).then(e,d)}}function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||c(e,t)})},t&&(i[e]=t(i[e])))}function c(e,t){try{l(r[e](t))}catch(e){f(a[0][3],e)}}function l(e){e.value instanceof ke?Promise.resolve(e.value.v).then(u,d):f(a[0][2],e)}function u(e){c(`next`,e)}function d(e){c(`throw`,e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}}function je(e){var t={},n;return r(`next`),r(`throw`,function(e){throw e}),r(`return`),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:ke(e[r](t)),done:!1}:i?i(t):t}:i}}function Me(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Te==`function`?Te(e):e[Symbol.iterator](),n={},r(`next`),r(`throw`),r(`return`),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise(function(r,a){n=e[t](n),i(r,a,n.done,n.value)})}}function i(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}}function Ne(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Pe(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=We(e),r=0;r<n.length;r++)n[r]!=="default"&&He(t,e,n[r]);return Ue(t,e),t}function Fe(e){return e&&e.__esModule?e:{default:e}}function Ie(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}function Le(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function Re(e,t){if(t===null||typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof e==`function`?t===e:e.has(t)}function O(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var r,i;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);r=t[Symbol.dispose],n&&(i=r)}if(typeof r!=`function`)throw TypeError(`Object not disposable.`);i&&(r=function(){try{i.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}function ze(e){function t(t){e.error=e.hasError?new Ge(t,e.error,`An error was suppressed during disposal.`):t,e.hasError=!0}var n,r=0;function i(){for(;n=e.stack.pop();)try{if(!n.async&&r===1)return r=0,e.stack.push(n),Promise.resolve().then(i);if(n.dispose){var a=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(a).then(i,function(e){return t(e),i()})}else r|=1}catch(e){t(e)}if(r===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return i()}function Be(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,r,i,a){return n?t?`.jsx`:`.js`:r&&(!i||!a)?e:r+i+`.`+a.toLowerCase()+`js`}):e}var k,Ve,He,Ue,We,Ge,A,Ke=s((()=>{k=function(e,t){return k=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},k(e,t)},Ve=function(){return Ve=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Ve.apply(this,arguments)},He=Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]}),Ue=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},We=function(e){return We=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},We(e)},Ge=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r},A={__extends:me,__assign:Ve,__rest:he,__decorate:ge,__param:_e,__esDecorate:ve,__runInitializers:ye,__propKey:be,__setFunctionName:xe,__metadata:Se,__awaiter:E,__generator:Ce,__createBinding:He,__exportStar:we,__values:Te,__read:D,__spread:Ee,__spreadArrays:De,__spreadArray:Oe,__await:ke,__asyncGenerator:Ae,__asyncDelegator:je,__asyncValues:Me,__makeTemplateObject:Ne,__importStar:Pe,__importDefault:Fe,__classPrivateFieldGet:Ie,__classPrivateFieldSet:Le,__classPrivateFieldIn:Re,__addDisposableResource:O,__disposeResources:ze,__rewriteRelativeImportExtension:Be}})),qe=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.E_CANCELED=e.E_ALREADY_LOCKED=e.E_TIMEOUT=void 0,e.E_TIMEOUT=Error(`timeout while waiting for mutex to become available`),e.E_ALREADY_LOCKED=Error(`mutex already locked`),e.E_CANCELED=Error(`request for lock canceled`)})),Je=c((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(Ke(),f(T)),n=qe();e.default=function(){function e(e,t){if(t===void 0&&(t=n.E_CANCELED),this._maxConcurrency=e,this._cancelError=t,this._queue=[],this._waiters=[],e<=0)throw Error(`semaphore must be initialized to a positive value`);this._value=e}return e.prototype.acquire=function(){var e=this,t=this.isLocked(),n=new Promise(function(t,n){return e._queue.push({resolve:t,reject:n})});return t||this._dispatch(),n},e.prototype.runExclusive=function(e){return(0,t.__awaiter)(this,void 0,void 0,function(){var n,r,i;return(0,t.__generator)(this,function(t){switch(t.label){case 0:return[4,this.acquire()];case 1:n=t.sent(),r=n[0],i=n[1],t.label=2;case 2:return t.trys.push([2,,4,5]),[4,e(r)];case 3:return[2,t.sent()];case 4:return i(),[7];case 5:return[2]}})})},e.prototype.waitForUnlock=function(){return(0,t.__awaiter)(this,void 0,void 0,function(){var e,n=this;return(0,t.__generator)(this,function(t){return this.isLocked()?(e=new Promise(function(e){return n._waiters.push({resolve:e})}),[2,e]):[2,Promise.resolve()]})})},e.prototype.isLocked=function(){return this._value<=0},e.prototype.release=function(){if(this._maxConcurrency>1)throw Error(`this method is unavailable on semaphores with concurrency > 1; use the scoped release returned by acquire instead`);if(this._currentReleaser){var e=this._currentReleaser;this._currentReleaser=void 0,e()}},e.prototype.cancel=function(){var e=this;this._queue.forEach(function(t){return t.reject(e._cancelError)}),this._queue=[]},e.prototype._dispatch=function(){var e=this,t=this._queue.shift();if(t){var n=!1;this._currentReleaser=function(){n||(n=!0,e._value++,e._resolveWaiters(),e._dispatch())},t.resolve([this._value--,this._currentReleaser])}},e.prototype._resolveWaiters=function(){this._waiters.forEach(function(e){return e.resolve()}),this._waiters=[]},e}()})),Ye=c((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(Ke(),f(T)),n=Je();e.default=function(){function e(e){this._semaphore=new n.default(1,e)}return e.prototype.acquire=function(){return(0,t.__awaiter)(this,void 0,void 0,function(){var e,n;return(0,t.__generator)(this,function(t){switch(t.label){case 0:return[4,this._semaphore.acquire()];case 1:return e=t.sent(),n=e[1],[2,n]}})})},e.prototype.runExclusive=function(e){return this._semaphore.runExclusive(function(){return e()})},e.prototype.isLocked=function(){return this._semaphore.isLocked()},e.prototype.waitForUnlock=function(){return this._semaphore.waitForUnlock()},e.prototype.release=function(){this._semaphore.release()},e.prototype.cancel=function(){return this._semaphore.cancel()},e}()})),Xe=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.withTimeout=void 0;var t=(Ke(),f(T)),n=qe();function r(e,r,i){var a=this;return i===void 0&&(i=n.E_TIMEOUT),{acquire:function(){return new Promise(function(n,o){return(0,t.__awaiter)(a,void 0,void 0,function(){var a,s,c,l,u;return(0,t.__generator)(this,function(t){switch(t.label){case 0:a=!1,s=setTimeout(function(){a=!0,o(i)},r),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,e.acquire()];case 2:return c=t.sent(),a?(l=Array.isArray(c)?c[1]:c,l()):(clearTimeout(s),n(c)),[3,4];case 3:return u=t.sent(),a||(clearTimeout(s),o(u)),[3,4];case 4:return[2]}})})})},runExclusive:function(e){return(0,t.__awaiter)(this,void 0,void 0,function(){var n,r;return(0,t.__generator)(this,function(t){switch(t.label){case 0:n=function(){},t.label=1;case 1:return t.trys.push([1,,7,8]),[4,this.acquire()];case 2:return r=t.sent(),Array.isArray(r)?(n=r[1],[4,e(r[0])]):[3,4];case 3:return[2,t.sent()];case 4:return n=r,[4,e()];case 5:return[2,t.sent()];case 6:return[3,8];case 7:return n(),[7];case 8:return[2]}})})},release:function(){e.release()},cancel:function(){return e.cancel()},waitForUnlock:function(){return e.waitForUnlock()},isLocked:function(){return e.isLocked()}}}e.withTimeout=r})),j=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryAcquire=void 0;var t=qe(),n=Xe();function r(e,r){return r===void 0&&(r=t.E_ALREADY_LOCKED),(0,n.withTimeout)(e,0,r)}e.tryAcquire=r})),Ze=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryAcquire=e.withTimeout=e.Semaphore=e.Mutex=void 0;var t=(Ke(),f(T)),n=Ye();Object.defineProperty(e,"Mutex",{enumerable:!0,get:function(){return n.default}});var r=Je();Object.defineProperty(e,"Semaphore",{enumerable:!0,get:function(){return r.default}});var i=Xe();Object.defineProperty(e,"withTimeout",{enumerable:!0,get:function(){return i.withTimeout}});var a=j();Object.defineProperty(e,"tryAcquire",{enumerable:!0,get:function(){return a.tryAcquire}}),(0,t.__exportStar)(qe(),e)})),Qe=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Z3_goal_prec=e.Z3_error_code=e.Z3_ast_print_mode=e.Z3_param_kind=e.Z3_decl_kind=e.Z3_ast_kind=e.Z3_sort_kind=e.Z3_parameter_kind=e.Z3_symbol_kind=e.Z3_lbool=void 0;var t;(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`})(t||(e.Z3_lbool=t={}));var n;(function(e){e[e.Z3_INT_SYMBOL=0]=`Z3_INT_SYMBOL`,e[e.Z3_STRING_SYMBOL=1]=`Z3_STRING_SYMBOL`})(n||(e.Z3_symbol_kind=n={}));var r;(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`})(r||(e.Z3_parameter_kind=r={}));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||(e.Z3_sort_kind=i={}));var a;(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`})(a||(e.Z3_ast_kind=a={}));var o;(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_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_FINITE_SET_EMPTY=49152]=`Z3_OP_FINITE_SET_EMPTY`,e[e.Z3_OP_FINITE_SET_SINGLETON=49153]=`Z3_OP_FINITE_SET_SINGLETON`,e[e.Z3_OP_FINITE_SET_UNION=49154]=`Z3_OP_FINITE_SET_UNION`,e[e.Z3_OP_FINITE_SET_INTERSECT=49155]=`Z3_OP_FINITE_SET_INTERSECT`,e[e.Z3_OP_FINITE_SET_DIFFERENCE=49156]=`Z3_OP_FINITE_SET_DIFFERENCE`,e[e.Z3_OP_FINITE_SET_IN=49157]=`Z3_OP_FINITE_SET_IN`,e[e.Z3_OP_FINITE_SET_SIZE=49158]=`Z3_OP_FINITE_SET_SIZE`,e[e.Z3_OP_FINITE_SET_SUBSET=49159]=`Z3_OP_FINITE_SET_SUBSET`,e[e.Z3_OP_FINITE_SET_MAP=49160]=`Z3_OP_FINITE_SET_MAP`,e[e.Z3_OP_FINITE_SET_FILTER=49161]=`Z3_OP_FINITE_SET_FILTER`,e[e.Z3_OP_FINITE_SET_RANGE=49162]=`Z3_OP_FINITE_SET_RANGE`,e[e.Z3_OP_FINITE_SET_EXT=49163]=`Z3_OP_FINITE_SET_EXT`,e[e.Z3_OP_FINITE_SET_MAP_INVERSE=49164]=`Z3_OP_FINITE_SET_MAP_INVERSE`,e[e.Z3_OP_INTERNAL=49165]=`Z3_OP_INTERNAL`,e[e.Z3_OP_RECURSIVE=49166]=`Z3_OP_RECURSIVE`,e[e.Z3_OP_UNINTERPRETED=49167]=`Z3_OP_UNINTERPRETED`})(o||(e.Z3_decl_kind=o={}));var s;(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`})(s||(e.Z3_param_kind=s={}));var c;(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`})(c||(e.Z3_ast_print_mode=c={}));var l;(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`})(l||(e.Z3_error_code=l={}));var u;(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`})(u||(e.Z3_goal_prec=u={}))})),$e=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.init=t;async function t(e,t={}){let n=await e(t);function r(e){return new Uint8Array(new Uint32Array(e).buffer)}function i(e){return e.map(e=>+!!e)}function a(e,t){return Array.from(new Uint32Array(n.HEAPU32.buffer,e,t))}let o=n._malloc(24),s=new Uint32Array(n.HEAPU32.buffer,o,6),c=e=>s[e],l=new Int32Array(n.HEAPU32.buffer,o,6),u=e=>l[e],d=new BigUint64Array(n.HEAPU32.buffer,o,3),f=e=>d[e],p=new BigInt64Array(n.HEAPU32.buffer,o,3),m=e=>p[e];return{em:n,Z3:{mk_context:function(e){let t=n._Z3_mk_context(e);return n._set_noop_error_handler(t),t},mk_context_rc:function(e){let t=n._Z3_mk_context_rc(e);return n._set_noop_error_handler(t),t},global_param_set:function(e,t){return n.ccall(`Z3_global_param_set`,`void`,[`string`,`string`],[e,t])},global_param_reset_all:n._Z3_global_param_reset_all,global_param_get:function(e){return n.ccall(`Z3_global_param_get`,`boolean`,[`string`,`number`],[e,o])?n.UTF8ToString(c(0)):null},mk_config:n._Z3_mk_config,del_config:n._Z3_del_config,set_param_value:function(e,t,r){return n.ccall(`Z3_set_param_value`,`void`,[`number`,`string`,`string`],[e,t,r])},del_context:n._Z3_del_context,inc_ref:n._Z3_inc_ref,dec_ref:n._Z3_dec_ref,update_param_value:function(e,t,r){return n.ccall(`Z3_update_param_value`,`void`,[`number`,`string`,`string`],[e,t,r])},get_global_param_descrs:n._Z3_get_global_param_descrs,interrupt:n._Z3_interrupt,enable_concurrent_dec_ref:n._Z3_enable_concurrent_dec_ref,mk_params:n._Z3_mk_params,params_inc_ref:n._Z3_params_inc_ref,params_dec_ref:n._Z3_params_dec_ref,params_set_bool:n._Z3_params_set_bool,params_set_uint:n._Z3_params_set_uint,params_set_double:n._Z3_params_set_double,params_set_symbol:n._Z3_params_set_symbol,params_to_string:function(e,t){return n.ccall(`Z3_params_to_string`,`string`,[`number`,`number`],[e,t])},params_validate:n._Z3_params_validate,param_descrs_inc_ref:n._Z3_param_descrs_inc_ref,param_descrs_dec_ref:n._Z3_param_descrs_dec_ref,param_descrs_get_kind:n._Z3_param_descrs_get_kind,param_descrs_size:function(e,t){let r=n.ccall(`Z3_param_descrs_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},param_descrs_get_name:n._Z3_param_descrs_get_name,param_descrs_get_documentation:function(e,t,r){return n.ccall(`Z3_param_descrs_get_documentation`,`string`,[`number`,`number`,`number`],[e,t,r])},param_descrs_to_string:function(e,t){return n.ccall(`Z3_param_descrs_to_string`,`string`,[`number`,`number`],[e,t])},mk_int_symbol:n._Z3_mk_int_symbol,mk_string_symbol:function(e,t){return n.ccall(`Z3_mk_string_symbol`,`number`,[`number`,`string`],[e,t])},mk_uninterpreted_sort:n._Z3_mk_uninterpreted_sort,mk_type_variable:n._Z3_mk_type_variable,mk_bool_sort:n._Z3_mk_bool_sort,mk_int_sort:n._Z3_mk_int_sort,mk_real_sort:n._Z3_mk_real_sort,mk_bv_sort:n._Z3_mk_bv_sort,mk_finite_domain_sort:n._Z3_mk_finite_domain_sort,mk_array_sort:n._Z3_mk_array_sort,mk_array_sort_n:function(e,t,i){return n.ccall(`Z3_mk_array_sort_n`,`number`,[`number`,`number`,`array`,`number`],[e,t.length,r(t),i])},mk_tuple_sort:function(e,t,i,s){if(i.length!==s.length)throw TypeError(`field_names and field_sorts must be the same length (got ${i.length} and {field_sorts.length})`);let l=n._malloc(4*i.length);try{return{rv:n.ccall(`Z3_mk_tuple_sort`,`number`,[`number`,`number`,`number`,`array`,`array`,`number`,`number`],[e,t,i.length,r(i),r(s),o,l]),mk_tuple_decl:c(0),proj_decl:a(l,i.length)}}finally{n._free(l)}},mk_enumeration_sort:function(e,t,i){let o=n._malloc(4*i.length);try{let s=n._malloc(4*i.length);try{return{rv:n.ccall(`Z3_mk_enumeration_sort`,`number`,[`number`,`number`,`number`,`array`,`number`,`number`],[e,t,i.length,r(i),o,s]),enum_consts:a(o,i.length),enum_testers:a(s,i.length)}}finally{n._free(s)}}finally{n._free(o)}},mk_list_sort:function(e,t,r){return{rv:n.ccall(`Z3_mk_list_sort`,`number`,[`number`,`number`,`number`,`number`,`number`,`number`,`number`,`number`,`number`],[e,t,r,o,o+4,o+8,o+12,o+16,o+20]),nil_decl:c(0),is_nil_decl:c(1),cons_decl:c(2),is_cons_decl:c(3),head_decl:c(4),tail_decl:c(5)}},mk_constructor:function(e,t,i,a,o,s){if(a.length!==o.length)throw TypeError(`field_names and sorts must be the same length (got ${a.length} and {sorts.length})`);if(a.length!==s.length)throw TypeError(`field_names and sort_refs must be the same length (got ${a.length} and {sort_refs.length})`);return n.ccall(`Z3_mk_constructor`,`number`,[`number`,`number`,`number`,`number`,`array`,`array`,`array`],[e,t,i,a.length,r(a),r(o),r(s)])},constructor_num_fields:function(e,t){let r=n.ccall(`Z3_constructor_num_fields`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},del_constructor:n._Z3_del_constructor,mk_datatype:function(e,t,i){return n.ccall(`Z3_mk_datatype`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},mk_polymorphic_datatype:function(e,t,i,a){return n.ccall(`Z3_mk_polymorphic_datatype`,`number`,[`number`,`number`,`number`,`array`,`number`,`array`],[e,t,i.length,r(i),a.length,r(a)])},mk_datatype_sort:function(e,t,i){return n.ccall(`Z3_mk_datatype_sort`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},mk_constructor_list:function(e,t){return n.ccall(`Z3_mk_constructor_list`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},del_constructor_list:n._Z3_del_constructor_list,mk_datatypes:function(e,t,i){if(t.length!==i.length)throw TypeError(`sort_names and constructor_lists must be the same length (got ${t.length} and {constructor_lists.length})`);let o=n._malloc(4*t.length);try{return n.ccall(`Z3_mk_datatypes`,`void`,[`number`,`number`,`array`,`number`,`array`],[e,t.length,r(t),o,r(i)]),a(o,t.length)}finally{n._free(o)}},query_constructor:function(e,t,r){let i=n._malloc(4*r);try{return n.ccall(`Z3_query_constructor`,`void`,[`number`,`number`,`number`,`number`,`number`,`number`],[e,t,r,o,o+4,i]),{constructor:c(0),tester:c(1),accessors:a(i,r)}}finally{n._free(i)}},mk_func_decl:function(e,t,i,a){return n.ccall(`Z3_mk_func_decl`,`number`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},mk_app:function(e,t,i){return n.ccall(`Z3_mk_app`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},mk_const:n._Z3_mk_const,mk_fresh_func_decl:function(e,t,i,a){return n.ccall(`Z3_mk_fresh_func_decl`,`number`,[`number`,`string`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},mk_fresh_const:function(e,t,r){return n.ccall(`Z3_mk_fresh_const`,`number`,[`number`,`string`,`number`],[e,t,r])},mk_rec_func_decl:function(e,t,i,a){return n.ccall(`Z3_mk_rec_func_decl`,`number`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},add_rec_def:function(e,t,i,a){return n.ccall(`Z3_add_rec_def`,`void`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},mk_true:n._Z3_mk_true,mk_false:n._Z3_mk_false,mk_eq:n._Z3_mk_eq,mk_distinct:function(e,t){return n.ccall(`Z3_mk_distinct`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_not:n._Z3_mk_not,mk_ite:n._Z3_mk_ite,mk_iff:n._Z3_mk_iff,mk_implies:n._Z3_mk_implies,mk_xor:n._Z3_mk_xor,mk_and:function(e,t){return n.ccall(`Z3_mk_and`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_or:function(e,t){return n.ccall(`Z3_mk_or`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_add:function(e,t){return n.ccall(`Z3_mk_add`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_mul:function(e,t){return n.ccall(`Z3_mk_mul`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_sub:function(e,t){return n.ccall(`Z3_mk_sub`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_unary_minus:n._Z3_mk_unary_minus,mk_div:n._Z3_mk_div,mk_mod:n._Z3_mk_mod,mk_rem:n._Z3_mk_rem,mk_power:n._Z3_mk_power,mk_abs:n._Z3_mk_abs,mk_lt:n._Z3_mk_lt,mk_le:n._Z3_mk_le,mk_gt:n._Z3_mk_gt,mk_ge:n._Z3_mk_ge,mk_divides:n._Z3_mk_divides,mk_int2real:n._Z3_mk_int2real,mk_real2int:n._Z3_mk_real2int,mk_is_int:n._Z3_mk_is_int,mk_bvnot:n._Z3_mk_bvnot,mk_bvredand:n._Z3_mk_bvredand,mk_bvredor:n._Z3_mk_bvredor,mk_bvand:n._Z3_mk_bvand,mk_bvor:n._Z3_mk_bvor,mk_bvxor:n._Z3_mk_bvxor,mk_bvnand:n._Z3_mk_bvnand,mk_bvnor:n._Z3_mk_bvnor,mk_bvxnor:n._Z3_mk_bvxnor,mk_bvneg:n._Z3_mk_bvneg,mk_bvadd:n._Z3_mk_bvadd,mk_bvsub:n._Z3_mk_bvsub,mk_bvmul:n._Z3_mk_bvmul,mk_bvudiv:n._Z3_mk_bvudiv,mk_bvsdiv:n._Z3_mk_bvsdiv,mk_bvurem:n._Z3_mk_bvurem,mk_bvsrem:n._Z3_mk_bvsrem,mk_bvsmod:n._Z3_mk_bvsmod,mk_bvult:n._Z3_mk_bvult,mk_bvslt:n._Z3_mk_bvslt,mk_bvule:n._Z3_mk_bvule,mk_bvsle:n._Z3_mk_bvsle,mk_bvuge:n._Z3_mk_bvuge,mk_bvsge:n._Z3_mk_bvsge,mk_bvugt:n._Z3_mk_bvugt,mk_bvsgt:n._Z3_mk_bvsgt,mk_concat:n._Z3_mk_concat,mk_extract:n._Z3_mk_extract,mk_sign_ext:n._Z3_mk_sign_ext,mk_zero_ext:n._Z3_mk_zero_ext,mk_repeat:n._Z3_mk_repeat,mk_bit2bool:n._Z3_mk_bit2bool,mk_bvshl:n._Z3_mk_bvshl,mk_bvlshr:n._Z3_mk_bvlshr,mk_bvashr:n._Z3_mk_bvashr,mk_rotate_left:n._Z3_mk_rotate_left,mk_rotate_right:n._Z3_mk_rotate_right,mk_ext_rotate_left:n._Z3_mk_ext_rotate_left,mk_ext_rotate_right:n._Z3_mk_ext_rotate_right,mk_int2bv:n._Z3_mk_int2bv,mk_bv2int:n._Z3_mk_bv2int,mk_bvadd_no_overflow:n._Z3_mk_bvadd_no_overflow,mk_bvadd_no_underflow:n._Z3_mk_bvadd_no_underflow,mk_bvsub_no_overflow:n._Z3_mk_bvsub_no_overflow,mk_bvsub_no_underflow:n._Z3_mk_bvsub_no_underflow,mk_bvsdiv_no_overflow:n._Z3_mk_bvsdiv_no_overflow,mk_bvneg_no_overflow:n._Z3_mk_bvneg_no_overflow,mk_bvmul_no_overflow:n._Z3_mk_bvmul_no_overflow,mk_bvmul_no_underflow:n._Z3_mk_bvmul_no_underflow,mk_select:n._Z3_mk_select,mk_select_n:function(e,t,i){return n.ccall(`Z3_mk_select_n`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},mk_store:n._Z3_mk_store,mk_store_n:function(e,t,i,a){return n.ccall(`Z3_mk_store_n`,`number`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},mk_const_array:n._Z3_mk_const_array,mk_map:function(e,t,i){return n.ccall(`Z3_mk_map`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},mk_array_default:n._Z3_mk_array_default,mk_as_array:n._Z3_mk_as_array,mk_set_sort:n._Z3_mk_set_sort,mk_empty_set:n._Z3_mk_empty_set,mk_full_set:n._Z3_mk_full_set,mk_set_add:n._Z3_mk_set_add,mk_set_del:n._Z3_mk_set_del,mk_set_union:function(e,t){return n.ccall(`Z3_mk_set_union`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_set_intersect:function(e,t){return n.ccall(`Z3_mk_set_intersect`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_set_difference:n._Z3_mk_set_difference,mk_set_complement:n._Z3_mk_set_complement,mk_set_member:n._Z3_mk_set_member,mk_set_subset:n._Z3_mk_set_subset,mk_array_ext:n._Z3_mk_array_ext,mk_finite_set_sort:n._Z3_mk_finite_set_sort,is_finite_set_sort:function(e,t){return n.ccall(`Z3_is_finite_set_sort`,`boolean`,[`number`,`number`],[e,t])},get_finite_set_sort_basis:n._Z3_get_finite_set_sort_basis,mk_finite_set_empty:n._Z3_mk_finite_set_empty,mk_finite_set_singleton:n._Z3_mk_finite_set_singleton,mk_finite_set_union:n._Z3_mk_finite_set_union,mk_finite_set_intersect:n._Z3_mk_finite_set_intersect,mk_finite_set_difference:n._Z3_mk_finite_set_difference,mk_finite_set_member:n._Z3_mk_finite_set_member,mk_finite_set_size:n._Z3_mk_finite_set_size,mk_finite_set_subset:n._Z3_mk_finite_set_subset,mk_finite_set_map:n._Z3_mk_finite_set_map,mk_finite_set_filter:n._Z3_mk_finite_set_filter,mk_finite_set_range:n._Z3_mk_finite_set_range,mk_numeral:function(e,t,r){return n.ccall(`Z3_mk_numeral`,`number`,[`number`,`string`,`number`],[e,t,r])},mk_real:n._Z3_mk_real,mk_real_int64:n._Z3_mk_real_int64,mk_int:n._Z3_mk_int,mk_unsigned_int:n._Z3_mk_unsigned_int,mk_int64:n._Z3_mk_int64,mk_unsigned_int64:n._Z3_mk_unsigned_int64,mk_bv_numeral:function(e,t){return n.ccall(`Z3_mk_bv_numeral`,`number`,[`number`,`number`,`array`],[e,t.length,i(t)])},mk_seq_sort:n._Z3_mk_seq_sort,is_seq_sort:function(e,t){return n.ccall(`Z3_is_seq_sort`,`boolean`,[`number`,`number`],[e,t])},get_seq_sort_basis:n._Z3_get_seq_sort_basis,mk_re_sort:n._Z3_mk_re_sort,is_re_sort:function(e,t){return n.ccall(`Z3_is_re_sort`,`boolean`,[`number`,`number`],[e,t])},get_re_sort_basis:n._Z3_get_re_sort_basis,mk_string_sort:n._Z3_mk_string_sort,mk_char_sort:n._Z3_mk_char_sort,is_string_sort:function(e,t){return n.ccall(`Z3_is_string_sort`,`boolean`,[`number`,`number`],[e,t])},is_char_sort:function(e,t){return n.ccall(`Z3_is_char_sort`,`boolean`,[`number`,`number`],[e,t])},mk_string:function(e,t){return n.ccall(`Z3_mk_string`,`number`,[`number`,`string`],[e,t])},mk_lstring:function(e,t,r){return n.ccall(`Z3_mk_lstring`,`number`,[`number`,`number`,`string`],[e,t,r])},mk_u32string:function(e,t){return n.ccall(`Z3_mk_u32string`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},is_string:function(e,t){return n.ccall(`Z3_is_string`,`boolean`,[`number`,`number`],[e,t])},get_string:function(e,t){return n.ccall(`Z3_get_string`,`string`,[`number`,`number`],[e,t])},get_string_length:function(e,t){let r=n.ccall(`Z3_get_string_length`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_string_contents:function(e,t,r){let i=n._malloc(4*r);try{return n.ccall(`Z3_get_string_contents`,`void`,[`number`,`number`,`number`,`number`],[e,t,r,i]),a(i,r)}finally{n._free(i)}},mk_seq_empty:n._Z3_mk_seq_empty,mk_seq_unit:n._Z3_mk_seq_unit,mk_seq_concat:function(e,t){return n.ccall(`Z3_mk_seq_concat`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_seq_prefix:n._Z3_mk_seq_prefix,mk_seq_suffix:n._Z3_mk_seq_suffix,mk_seq_contains:n._Z3_mk_seq_contains,mk_str_lt:n._Z3_mk_str_lt,mk_str_le:n._Z3_mk_str_le,mk_seq_extract:n._Z3_mk_seq_extract,mk_seq_replace:n._Z3_mk_seq_replace,mk_seq_replace_all:n._Z3_mk_seq_replace_all,mk_seq_replace_re:n._Z3_mk_seq_replace_re,mk_seq_replace_re_all:n._Z3_mk_seq_replace_re_all,mk_seq_at:n._Z3_mk_seq_at,mk_seq_nth:n._Z3_mk_seq_nth,mk_seq_length:n._Z3_mk_seq_length,mk_seq_index:n._Z3_mk_seq_index,mk_seq_last_index:n._Z3_mk_seq_last_index,mk_seq_map:n._Z3_mk_seq_map,mk_seq_mapi:n._Z3_mk_seq_mapi,mk_seq_foldl:n._Z3_mk_seq_foldl,mk_seq_foldli:n._Z3_mk_seq_foldli,mk_str_to_int:n._Z3_mk_str_to_int,mk_int_to_str:n._Z3_mk_int_to_str,mk_string_to_code:n._Z3_mk_string_to_code,mk_string_from_code:n._Z3_mk_string_from_code,mk_ubv_to_str:n._Z3_mk_ubv_to_str,mk_sbv_to_str:n._Z3_mk_sbv_to_str,mk_seq_to_re:n._Z3_mk_seq_to_re,mk_seq_in_re:n._Z3_mk_seq_in_re,mk_re_plus:n._Z3_mk_re_plus,mk_re_star:n._Z3_mk_re_star,mk_re_option:n._Z3_mk_re_option,mk_re_union:function(e,t){return n.ccall(`Z3_mk_re_union`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_re_concat:function(e,t){return n.ccall(`Z3_mk_re_concat`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_re_range:n._Z3_mk_re_range,mk_re_allchar:n._Z3_mk_re_allchar,mk_re_loop:n._Z3_mk_re_loop,mk_re_power:n._Z3_mk_re_power,mk_re_intersect:function(e,t){return n.ccall(`Z3_mk_re_intersect`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_re_complement:n._Z3_mk_re_complement,mk_re_diff:n._Z3_mk_re_diff,mk_re_empty:n._Z3_mk_re_empty,mk_re_full:n._Z3_mk_re_full,mk_char:n._Z3_mk_char,mk_char_le:n._Z3_mk_char_le,mk_char_to_int:n._Z3_mk_char_to_int,mk_char_to_bv:n._Z3_mk_char_to_bv,mk_char_from_bv:n._Z3_mk_char_from_bv,mk_char_is_digit:n._Z3_mk_char_is_digit,mk_linear_order:n._Z3_mk_linear_order,mk_partial_order:n._Z3_mk_partial_order,mk_piecewise_linear_order:n._Z3_mk_piecewise_linear_order,mk_tree_order:n._Z3_mk_tree_order,mk_transitive_closure:n._Z3_mk_transitive_closure,mk_pattern:function(e,t){return n.ccall(`Z3_mk_pattern`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},mk_bound:n._Z3_mk_bound,mk_forall:function(e,t,i,a,o,s){if(a.length!==o.length)throw TypeError(`sorts and decl_names must be the same length (got ${a.length} and {decl_names.length})`);return n.ccall(`Z3_mk_forall`,`number`,[`number`,`number`,`number`,`array`,`number`,`array`,`array`,`number`],[e,t,i.length,r(i),a.length,r(a),r(o),s])},mk_exists:function(e,t,i,a,o,s){if(a.length!==o.length)throw TypeError(`sorts and decl_names must be the same length (got ${a.length} and {decl_names.length})`);return n.ccall(`Z3_mk_exists`,`number`,[`number`,`number`,`number`,`array`,`number`,`array`,`array`,`number`],[e,t,i.length,r(i),a.length,r(a),r(o),s])},mk_quantifier:function(e,t,i,a,o,s,c){if(o.length!==s.length)throw TypeError(`sorts and decl_names must be the same length (got ${o.length} and {decl_names.length})`);return n.ccall(`Z3_mk_quantifier`,`number`,[`number`,`boolean`,`number`,`number`,`array`,`number`,`array`,`array`,`number`],[e,t,i,a.length,r(a),o.length,r(o),r(s),c])},mk_quantifier_ex:function(e,t,i,a,o,s,c,l,u,d){if(l.length!==u.length)throw TypeError(`sorts and decl_names must be the same length (got ${l.length} and {decl_names.length})`);return n.ccall(`Z3_mk_quantifier_ex`,`number`,[`number`,`boolean`,`number`,`number`,`number`,`number`,`array`,`number`,`array`,`number`,`array`,`array`,`number`],[e,t,i,a,o,s.length,r(s),c.length,r(c),l.length,r(l),r(u),d])},mk_forall_const:function(e,t,i,a,o){return n.ccall(`Z3_mk_forall_const`,`number`,[`number`,`number`,`number`,`array`,`number`,`array`,`number`],[e,t,i.length,r(i),a.length,r(a),o])},mk_exists_const:function(e,t,i,a,o){return n.ccall(`Z3_mk_exists_const`,`number`,[`number`,`number`,`number`,`array`,`number`,`array`,`number`],[e,t,i.length,r(i),a.length,r(a),o])},mk_quantifier_const:function(e,t,i,a,o,s){return n.ccall(`Z3_mk_quantifier_const`,`number`,[`number`,`boolean`,`number`,`number`,`array`,`number`,`array`,`number`],[e,t,i,a.length,r(a),o.length,r(o),s])},mk_quantifier_const_ex:function(e,t,i,a,o,s,c,l,u){return n.ccall(`Z3_mk_quantifier_const_ex`,`number`,[`number`,`boolean`,`number`,`number`,`number`,`number`,`array`,`number`,`array`,`number`,`array`,`number`],[e,t,i,a,o,s.length,r(s),c.length,r(c),l.length,r(l),u])},mk_lambda:function(e,t,i,a){if(t.length!==i.length)throw TypeError(`sorts and decl_names must be the same length (got ${t.length} and {decl_names.length})`);return n.ccall(`Z3_mk_lambda`,`number`,[`number`,`number`,`array`,`array`,`number`],[e,t.length,r(t),r(i),a])},mk_lambda_const:function(e,t,i){return n.ccall(`Z3_mk_lambda_const`,`number`,[`number`,`number`,`array`,`number`],[e,t.length,r(t),i])},get_symbol_kind:n._Z3_get_symbol_kind,get_symbol_int:n._Z3_get_symbol_int,get_symbol_string:function(e,t){return n.ccall(`Z3_get_symbol_string`,`string`,[`number`,`number`],[e,t])},get_sort_name:n._Z3_get_sort_name,get_sort_id:function(e,t){let r=n.ccall(`Z3_get_sort_id`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},sort_to_ast:n._Z3_sort_to_ast,is_eq_sort:function(e,t,r){return n.ccall(`Z3_is_eq_sort`,`boolean`,[`number`,`number`,`number`],[e,t,r])},get_sort_kind:n._Z3_get_sort_kind,get_bv_sort_size:function(e,t){let r=n.ccall(`Z3_get_bv_sort_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_finite_domain_sort_size:function(e,t){return n.ccall(`Z3_get_finite_domain_sort_size`,`boolean`,[`number`,`number`,`number`],[e,t,o])?f(0):null},get_array_arity:function(e,t){let r=n.ccall(`Z3_get_array_arity`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_array_sort_domain:n._Z3_get_array_sort_domain,get_array_sort_domain_n:n._Z3_get_array_sort_domain_n,get_array_sort_range:n._Z3_get_array_sort_range,get_tuple_sort_mk_decl:n._Z3_get_tuple_sort_mk_decl,get_tuple_sort_num_fields:function(e,t){let r=n.ccall(`Z3_get_tuple_sort_num_fields`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_tuple_sort_field_decl:n._Z3_get_tuple_sort_field_decl,is_recursive_datatype_sort:function(e,t){return n.ccall(`Z3_is_recursive_datatype_sort`,`boolean`,[`number`,`number`],[e,t])},get_datatype_sort_num_constructors:function(e,t){let r=n.ccall(`Z3_get_datatype_sort_num_constructors`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_datatype_sort_constructor:n._Z3_get_datatype_sort_constructor,get_datatype_sort_recognizer:n._Z3_get_datatype_sort_recognizer,get_datatype_sort_constructor_accessor:n._Z3_get_datatype_sort_constructor_accessor,datatype_update_field:n._Z3_datatype_update_field,get_relation_arity:function(e,t){let r=n.ccall(`Z3_get_relation_arity`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_relation_column:n._Z3_get_relation_column,mk_atmost:function(e,t,i){return n.ccall(`Z3_mk_atmost`,`number`,[`number`,`number`,`array`,`number`],[e,t.length,r(t),i])},mk_atleast:function(e,t,i){return n.ccall(`Z3_mk_atleast`,`number`,[`number`,`number`,`array`,`number`],[e,t.length,r(t),i])},mk_pble:function(e,t,i,a){if(t.length!==i.length)throw TypeError(`args and coeffs must be the same length (got ${t.length} and {coeffs.length})`);return n.ccall(`Z3_mk_pble`,`number`,[`number`,`number`,`array`,`array`,`number`],[e,t.length,r(t),r(i),a])},mk_pbge:function(e,t,i,a){if(t.length!==i.length)throw TypeError(`args and coeffs must be the same length (got ${t.length} and {coeffs.length})`);return n.ccall(`Z3_mk_pbge`,`number`,[`number`,`number`,`array`,`array`,`number`],[e,t.length,r(t),r(i),a])},mk_pbeq:function(e,t,i,a){if(t.length!==i.length)throw TypeError(`args and coeffs must be the same length (got ${t.length} and {coeffs.length})`);return n.ccall(`Z3_mk_pbeq`,`number`,[`number`,`number`,`array`,`array`,`number`],[e,t.length,r(t),r(i),a])},func_decl_to_ast:n._Z3_func_decl_to_ast,is_eq_func_decl:function(e,t,r){return n.ccall(`Z3_is_eq_func_decl`,`boolean`,[`number`,`number`,`number`],[e,t,r])},get_func_decl_id:function(e,t){let r=n.ccall(`Z3_get_func_decl_id`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_decl_name:n._Z3_get_decl_name,get_decl_kind:n._Z3_get_decl_kind,get_domain_size:function(e,t){let r=n.ccall(`Z3_get_domain_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_arity:function(e,t){let r=n.ccall(`Z3_get_arity`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_domain:n._Z3_get_domain,get_range:n._Z3_get_range,get_decl_num_parameters:function(e,t){let r=n.ccall(`Z3_get_decl_num_parameters`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_decl_parameter_kind:n._Z3_get_decl_parameter_kind,get_decl_int_parameter:n._Z3_get_decl_int_parameter,get_decl_double_parameter:n._Z3_get_decl_double_parameter,get_decl_symbol_parameter:n._Z3_get_decl_symbol_parameter,get_decl_sort_parameter:n._Z3_get_decl_sort_parameter,get_decl_ast_parameter:n._Z3_get_decl_ast_parameter,get_decl_func_decl_parameter:n._Z3_get_decl_func_decl_parameter,get_decl_rational_parameter:function(e,t,r){return n.ccall(`Z3_get_decl_rational_parameter`,`string`,[`number`,`number`,`number`],[e,t,r])},app_to_ast:n._Z3_app_to_ast,get_app_decl:n._Z3_get_app_decl,get_app_num_args:function(e,t){let r=n.ccall(`Z3_get_app_num_args`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_app_arg:n._Z3_get_app_arg,is_eq_ast:function(e,t,r){return n.ccall(`Z3_is_eq_ast`,`boolean`,[`number`,`number`,`number`],[e,t,r])},get_ast_id:function(e,t){let r=n.ccall(`Z3_get_ast_id`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_ast_hash:function(e,t){let r=n.ccall(`Z3_get_ast_hash`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_sort:n._Z3_get_sort,is_well_sorted:function(e,t){return n.ccall(`Z3_is_well_sorted`,`boolean`,[`number`,`number`],[e,t])},get_bool_value:n._Z3_get_bool_value,get_ast_kind:n._Z3_get_ast_kind,is_app:function(e,t){return n.ccall(`Z3_is_app`,`boolean`,[`number`,`number`],[e,t])},is_ground:function(e,t){return n.ccall(`Z3_is_ground`,`boolean`,[`number`,`number`],[e,t])},get_depth:function(e,t){let r=n.ccall(`Z3_get_depth`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},is_numeral_ast:function(e,t){return n.ccall(`Z3_is_numeral_ast`,`boolean`,[`number`,`number`],[e,t])},is_algebraic_number:function(e,t){return n.ccall(`Z3_is_algebraic_number`,`boolean`,[`number`,`number`],[e,t])},to_app:n._Z3_to_app,to_func_decl:n._Z3_to_func_decl,get_numeral_string:function(e,t){return n.ccall(`Z3_get_numeral_string`,`string`,[`number`,`number`],[e,t])},get_numeral_binary_string:function(e,t){return n.ccall(`Z3_get_numeral_binary_string`,`string`,[`number`,`number`],[e,t])},get_numeral_decimal_string:function(e,t,r){return n.ccall(`Z3_get_numeral_decimal_string`,`string`,[`number`,`number`,`number`],[e,t,r])},get_numeral_double:n._Z3_get_numeral_double,get_numerator:n._Z3_get_numerator,get_denominator:n._Z3_get_denominator,get_numeral_small:function(e,t){return n.ccall(`Z3_get_numeral_small`,`boolean`,[`number`,`number`,`number`,`number`],[e,t,o,o+8])?{num:m(0),den:m(1)}:null},get_numeral_int:function(e,t){return n.ccall(`Z3_get_numeral_int`,`boolean`,[`number`,`number`,`number`],[e,t,o])?u(0):null},get_numeral_uint:function(e,t){return n.ccall(`Z3_get_numeral_uint`,`boolean`,[`number`,`number`,`number`],[e,t,o])?c(0):null},get_numeral_uint64:function(e,t){return n.ccall(`Z3_get_numeral_uint64`,`boolean`,[`number`,`number`,`number`],[e,t,o])?f(0):null},get_numeral_int64:function(e,t){return n.ccall(`Z3_get_numeral_int64`,`boolean`,[`number`,`number`,`number`],[e,t,o])?m(0):null},get_numeral_rational_int64:function(e,t){return n.ccall(`Z3_get_numeral_rational_int64`,`boolean`,[`number`,`number`,`number`,`number`],[e,t,o,o+8])?{num:m(0),den:m(1)}:null},get_algebraic_number_lower:n._Z3_get_algebraic_number_lower,get_algebraic_number_upper:n._Z3_get_algebraic_number_upper,pattern_to_ast:n._Z3_pattern_to_ast,get_pattern_num_terms:function(e,t){let r=n.ccall(`Z3_get_pattern_num_terms`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_pattern:n._Z3_get_pattern,get_index_value:function(e,t){let r=n.ccall(`Z3_get_index_value`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},is_quantifier_forall:function(e,t){return n.ccall(`Z3_is_quantifier_forall`,`boolean`,[`number`,`number`],[e,t])},is_quantifier_exists:function(e,t){return n.ccall(`Z3_is_quantifier_exists`,`boolean`,[`number`,`number`],[e,t])},is_lambda:function(e,t){return n.ccall(`Z3_is_lambda`,`boolean`,[`number`,`number`],[e,t])},get_quantifier_weight:function(e,t){let r=n.ccall(`Z3_get_quantifier_weight`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_quantifier_skolem_id:n._Z3_get_quantifier_skolem_id,get_quantifier_id:n._Z3_get_quantifier_id,get_quantifier_num_patterns:function(e,t){let r=n.ccall(`Z3_get_quantifier_num_patterns`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_quantifier_pattern_ast:n._Z3_get_quantifier_pattern_ast,get_quantifier_num_no_patterns:function(e,t){let r=n.ccall(`Z3_get_quantifier_num_no_patterns`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_quantifier_no_pattern_ast:n._Z3_get_quantifier_no_pattern_ast,get_quantifier_num_bound:function(e,t){let r=n.ccall(`Z3_get_quantifier_num_bound`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},get_quantifier_bound_name:n._Z3_get_quantifier_bound_name,get_quantifier_bound_sort:n._Z3_get_quantifier_bound_sort,get_quantifier_body:n._Z3_get_quantifier_body,simplify:function(e,t){return n.async_call(n._async_Z3_simplify,e,t)},simplify_ex:function(e,t,r){return n.async_call(n._async_Z3_simplify_ex,e,t,r)},simplify_get_help:function(e){return n.ccall(`Z3_simplify_get_help`,`string`,[`number`],[e])},simplify_get_param_descrs:n._Z3_simplify_get_param_descrs,update_term:function(e,t,i){return n.ccall(`Z3_update_term`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},substitute:function(e,t,i,a){if(i.length!==a.length)throw TypeError(`from and to must be the same length (got ${i.length} and {to.length})`);return n.ccall(`Z3_substitute`,`number`,[`number`,`number`,`number`,`array`,`array`],[e,t,i.length,r(i),r(a)])},substitute_vars:function(e,t,i){return n.ccall(`Z3_substitute_vars`,`number`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},substitute_funs:function(e,t,i,a){if(i.length!==a.length)throw TypeError(`from and to must be the same length (got ${i.length} and {to.length})`);return n.ccall(`Z3_substitute_funs`,`number`,[`number`,`number`,`number`,`array`,`array`],[e,t,i.length,r(i),r(a)])},translate:n._Z3_translate,mk_model:n._Z3_mk_model,model_inc_ref:n._Z3_model_inc_ref,model_dec_ref:n._Z3_model_dec_ref,model_eval:function(e,t,r,i){return n.ccall(`Z3_model_eval`,`boolean`,[`number`,`number`,`number`,`boolean`,`number`],[e,t,r,i,o])?c(0):null},model_get_const_interp:n._Z3_model_get_const_interp,model_has_interp:function(e,t,r){return n.ccall(`Z3_model_has_interp`,`boolean`,[`number`,`number`,`number`],[e,t,r])},model_get_func_interp:n._Z3_model_get_func_interp,model_get_num_consts:function(e,t){let r=n.ccall(`Z3_model_get_num_consts`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},model_get_const_decl:n._Z3_model_get_const_decl,model_get_num_funcs:function(e,t){let r=n.ccall(`Z3_model_get_num_funcs`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},model_get_func_decl:n._Z3_model_get_func_decl,model_get_num_sorts:function(e,t){let r=n.ccall(`Z3_model_get_num_sorts`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},model_get_sort:n._Z3_model_get_sort,model_get_sort_universe:n._Z3_model_get_sort_universe,model_translate:n._Z3_model_translate,is_as_array:function(e,t){return n.ccall(`Z3_is_as_array`,`boolean`,[`number`,`number`],[e,t])},get_as_array_func_decl:n._Z3_get_as_array_func_decl,add_func_interp:n._Z3_add_func_interp,add_const_interp:n._Z3_add_const_interp,func_interp_inc_ref:n._Z3_func_interp_inc_ref,func_interp_dec_ref:n._Z3_func_interp_dec_ref,func_interp_get_num_entries:function(e,t){let r=n.ccall(`Z3_func_interp_get_num_entries`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},func_interp_get_entry:n._Z3_func_interp_get_entry,func_interp_get_else:n._Z3_func_interp_get_else,func_interp_set_else:n._Z3_func_interp_set_else,func_interp_get_arity:function(e,t){let r=n.ccall(`Z3_func_interp_get_arity`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},func_interp_add_entry:n._Z3_func_interp_add_entry,func_entry_inc_ref:n._Z3_func_entry_inc_ref,func_entry_dec_ref:n._Z3_func_entry_dec_ref,func_entry_get_value:n._Z3_func_entry_get_value,func_entry_get_num_args:function(e,t){let r=n.ccall(`Z3_func_entry_get_num_args`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},func_entry_get_arg:n._Z3_func_entry_get_arg,open_log:function(e){return n.ccall(`Z3_open_log`,`boolean`,[`string`],[e])},append_log:function(e){return n.ccall(`Z3_append_log`,`void`,[`string`],[e])},close_log:n._Z3_close_log,toggle_warning_messages:n._Z3_toggle_warning_messages,set_ast_print_mode:n._Z3_set_ast_print_mode,ast_to_string:function(e,t){return n.ccall(`Z3_ast_to_string`,`string`,[`number`,`number`],[e,t])},pattern_to_string:function(e,t){return n.ccall(`Z3_pattern_to_string`,`string`,[`number`,`number`],[e,t])},sort_to_string:function(e,t){return n.ccall(`Z3_sort_to_string`,`string`,[`number`,`number`],[e,t])},func_decl_to_string:function(e,t){return n.ccall(`Z3_func_decl_to_string`,`string`,[`number`,`number`],[e,t])},model_to_string:function(e,t){return n.ccall(`Z3_model_to_string`,`string`,[`number`,`number`],[e,t])},benchmark_to_smtlib_string:function(e,t,i,a,o,s,c){return n.ccall(`Z3_benchmark_to_smtlib_string`,`string`,[`number`,`string`,`string`,`string`,`string`,`number`,`array`,`number`],[e,t,i,a,o,s.length,r(s),c])},parse_smtlib2_string:function(e,t,i,a,o,s){if(i.length!==a.length)throw TypeError(`sort_names and sorts must be the same length (got ${i.length} and {sorts.length})`);if(o.length!==s.length)throw TypeError(`decl_names and decls must be the same length (got ${o.length} and {decls.length})`);return n.ccall(`Z3_parse_smtlib2_string`,`number`,[`number`,`string`,`number`,`array`,`array`,`number`,`array`,`array`],[e,t,i.length,r(i),r(a),o.length,r(o),r(s)])},parse_smtlib2_file:function(e,t,i,a,o,s){if(i.length!==a.length)throw TypeError(`sort_names and sorts must be the same length (got ${i.length} and {sorts.length})`);if(o.length!==s.length)throw TypeError(`decl_names and decls must be the same length (got ${o.length} and {decls.length})`);return n.ccall(`Z3_parse_smtlib2_file`,`number`,[`number`,`string`,`number`,`array`,`array`,`number`,`array`,`array`],[e,t,i.length,r(i),r(a),o.length,r(o),r(s)])},eval_smtlib2_string:async function(e,t){return await n.async_call(()=>n.ccall(`async_Z3_eval_smtlib2_string`,`void`,[`number`,`string`],[e,t]))},mk_parser_context:n._Z3_mk_parser_context,parser_context_inc_ref:n._Z3_parser_context_inc_ref,parser_context_dec_ref:n._Z3_parser_context_dec_ref,parser_context_add_sort:n._Z3_parser_context_add_sort,parser_context_add_decl:n._Z3_parser_context_add_decl,parser_context_from_string:function(e,t,r){return n.ccall(`Z3_parser_context_from_string`,`number`,[`number`,`number`,`string`],[e,t,r])},get_error_code:n._Z3_get_error_code,set_error:n._Z3_set_error,get_error_msg:function(e,t){return n.ccall(`Z3_get_error_msg`,`string`,[`number`,`number`],[e,t])},get_version:function(){return n.ccall(`Z3_get_version`,`void`,[`number`,`number`,`number`,`number`],[o,o+4,o+8,o+12]),{major:c(0),minor:c(1),build_number:c(2),revision_number:c(3)}},get_full_version:function(){return n.ccall(`Z3_get_full_version`,`string`,[],[])},enable_trace:function(e){return n.ccall(`Z3_enable_trace`,`void`,[`string`],[e])},disable_trace:function(e){return n.ccall(`Z3_disable_trace`,`void`,[`string`],[e])},reset_memory:n._Z3_reset_memory,finalize_memory:n._Z3_finalize_memory,mk_goal:n._Z3_mk_goal,goal_inc_ref:n._Z3_goal_inc_ref,goal_dec_ref:n._Z3_goal_dec_ref,goal_precision:n._Z3_goal_precision,goal_assert:n._Z3_goal_assert,goal_inconsistent:function(e,t){return n.ccall(`Z3_goal_inconsistent`,`boolean`,[`number`,`number`],[e,t])},goal_depth:function(e,t){let r=n.ccall(`Z3_goal_depth`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},goal_reset:n._Z3_goal_reset,goal_size:function(e,t){let r=n.ccall(`Z3_goal_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},goal_formula:n._Z3_goal_formula,goal_num_exprs:function(e,t){let r=n.ccall(`Z3_goal_num_exprs`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},goal_is_decided_sat:function(e,t){return n.ccall(`Z3_goal_is_decided_sat`,`boolean`,[`number`,`number`],[e,t])},goal_is_decided_unsat:function(e,t){return n.ccall(`Z3_goal_is_decided_unsat`,`boolean`,[`number`,`number`],[e,t])},goal_translate:n._Z3_goal_translate,goal_convert_model:n._Z3_goal_convert_model,goal_to_string:function(e,t){return n.ccall(`Z3_goal_to_string`,`string`,[`number`,`number`],[e,t])},goal_to_dimacs_string:function(e,t,r){return n.ccall(`Z3_goal_to_dimacs_string`,`string`,[`number`,`number`,`boolean`],[e,t,r])},mk_tactic:function(e,t){return n.ccall(`Z3_mk_tactic`,`number`,[`number`,`string`],[e,t])},tactic_inc_ref:n._Z3_tactic_inc_ref,tactic_dec_ref:n._Z3_tactic_dec_ref,mk_probe:function(e,t){return n.ccall(`Z3_mk_probe`,`number`,[`number`,`string`],[e,t])},probe_inc_ref:n._Z3_probe_inc_ref,probe_dec_ref:n._Z3_probe_dec_ref,tactic_and_then:n._Z3_tactic_and_then,tactic_or_else:n._Z3_tactic_or_else,tactic_par_or:function(e,t){return n.ccall(`Z3_tactic_par_or`,`number`,[`number`,`number`,`array`],[e,t.length,r(t)])},tactic_par_and_then:n._Z3_tactic_par_and_then,tactic_try_for:n._Z3_tactic_try_for,tactic_when:n._Z3_tactic_when,tactic_cond:n._Z3_tactic_cond,tactic_repeat:n._Z3_tactic_repeat,tactic_skip:n._Z3_tactic_skip,tactic_fail:n._Z3_tactic_fail,tactic_fail_if:n._Z3_tactic_fail_if,tactic_fail_if_not_decided:n._Z3_tactic_fail_if_not_decided,tactic_using_params:n._Z3_tactic_using_params,mk_simplifier:function(e,t){return n.ccall(`Z3_mk_simplifier`,`number`,[`number`,`string`],[e,t])},simplifier_inc_ref:n._Z3_simplifier_inc_ref,simplifier_dec_ref:n._Z3_simplifier_dec_ref,solver_add_simplifier:n._Z3_solver_add_simplifier,simplifier_and_then:n._Z3_simplifier_and_then,simplifier_using_params:n._Z3_simplifier_using_params,get_num_simplifiers:function(e){let t=n.ccall(`Z3_get_num_simplifiers`,`number`,[`number`],[e]);return t=new Uint32Array([t])[0],t},get_simplifier_name:function(e,t){return n.ccall(`Z3_get_simplifier_name`,`string`,[`number`,`number`],[e,t])},simplifier_get_help:function(e,t){return n.ccall(`Z3_simplifier_get_help`,`string`,[`number`,`number`],[e,t])},simplifier_get_param_descrs:n._Z3_simplifier_get_param_descrs,simplifier_get_descr:function(e,t){return n.ccall(`Z3_simplifier_get_descr`,`string`,[`number`,`string`],[e,t])},probe_const:n._Z3_probe_const,probe_lt:n._Z3_probe_lt,probe_gt:n._Z3_probe_gt,probe_le:n._Z3_probe_le,probe_ge:n._Z3_probe_ge,probe_eq:n._Z3_probe_eq,probe_and:n._Z3_probe_and,probe_or:n._Z3_probe_or,probe_not:n._Z3_probe_not,get_num_tactics:function(e){let t=n.ccall(`Z3_get_num_tactics`,`number`,[`number`],[e]);return t=new Uint32Array([t])[0],t},get_tactic_name:function(e,t){return n.ccall(`Z3_get_tactic_name`,`string`,[`number`,`number`],[e,t])},get_num_probes:function(e){let t=n.ccall(`Z3_get_num_probes`,`number`,[`number`],[e]);return t=new Uint32Array([t])[0],t},get_probe_name:function(e,t){return n.ccall(`Z3_get_probe_name`,`string`,[`number`,`number`],[e,t])},tactic_get_help:function(e,t){return n.ccall(`Z3_tactic_get_help`,`string`,[`number`,`number`],[e,t])},tactic_get_param_descrs:n._Z3_tactic_get_param_descrs,tactic_get_descr:function(e,t){return n.ccall(`Z3_tactic_get_descr`,`string`,[`number`,`string`],[e,t])},probe_get_descr:function(e,t){return n.ccall(`Z3_probe_get_descr`,`string`,[`number`,`string`],[e,t])},probe_apply:n._Z3_probe_apply,tactic_apply:function(e,t,r){return n.async_call(n._async_Z3_tactic_apply,e,t,r)},tactic_apply_ex:function(e,t,r,i){return n.async_call(n._async_Z3_tactic_apply_ex,e,t,r,i)},apply_result_inc_ref:n._Z3_apply_result_inc_ref,apply_result_dec_ref:n._Z3_apply_result_dec_ref,apply_result_to_string:function(e,t){return n.ccall(`Z3_apply_result_to_string`,`string`,[`number`,`number`],[e,t])},apply_result_get_num_subgoals:function(e,t){let r=n.ccall(`Z3_apply_result_get_num_subgoals`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},apply_result_get_subgoal:n._Z3_apply_result_get_subgoal,mk_solver:n._Z3_mk_solver,mk_simple_solver:n._Z3_mk_simple_solver,mk_solver_for_logic:n._Z3_mk_solver_for_logic,mk_solver_from_tactic:n._Z3_mk_solver_from_tactic,solver_translate:n._Z3_solver_translate,solver_import_model_converter:n._Z3_solver_import_model_converter,solver_get_help:function(e,t){return n.ccall(`Z3_solver_get_help`,`string`,[`number`,`number`],[e,t])},solver_get_param_descrs:n._Z3_solver_get_param_descrs,solver_set_params:n._Z3_solver_set_params,solver_inc_ref:n._Z3_solver_inc_ref,solver_dec_ref:n._Z3_solver_dec_ref,solver_interrupt:n._Z3_solver_interrupt,solver_push:n._Z3_solver_push,solver_pop:n._Z3_solver_pop,solver_reset:n._Z3_solver_reset,solver_get_num_scopes:function(e,t){let r=n.ccall(`Z3_solver_get_num_scopes`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},solver_assert:n._Z3_solver_assert,solver_assert_and_track:n._Z3_solver_assert_and_track,solver_from_file:function(e,t,r){return n.ccall(`Z3_solver_from_file`,`void`,[`number`,`number`,`string`],[e,t,r])},solver_from_string:function(e,t,r){return n.ccall(`Z3_solver_from_string`,`void`,[`number`,`number`,`string`],[e,t,r])},solver_get_assertions:n._Z3_solver_get_assertions,solver_get_units:n._Z3_solver_get_units,solver_get_trail:n._Z3_solver_get_trail,solver_get_non_units:n._Z3_solver_get_non_units,solver_get_levels:function(e,t,r,i){let o=n._malloc(4*i);try{return n.ccall(`Z3_solver_get_levels`,`void`,[`number`,`number`,`number`,`number`,`number`],[e,t,r,i,o]),a(o,i)}finally{n._free(o)}},solver_congruence_root:n._Z3_solver_congruence_root,solver_congruence_next:n._Z3_solver_congruence_next,solver_congruence_explain:n._Z3_solver_congruence_explain,solver_solve_for:n._Z3_solver_solve_for,solver_next_split:function(e,t,r,i,a){return n.ccall(`Z3_solver_next_split`,`boolean`,[`number`,`number`,`number`,`number`,`number`],[e,t,r,i,a])},solver_propagate_declare:function(e,t,i,a){return n.ccall(`Z3_solver_propagate_declare`,`number`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},solver_propagate_register:n._Z3_solver_propagate_register,solver_propagate_register_cb:n._Z3_solver_propagate_register_cb,solver_propagate_consequence:function(e,t,i,a,o,s){if(a.length!==o.length)throw TypeError(`eq_lhs and eq_rhs must be the same length (got ${a.length} and {eq_rhs.length})`);return n.ccall(`Z3_solver_propagate_consequence`,`boolean`,[`number`,`number`,`number`,`array`,`number`,`array`,`array`,`number`],[e,t,i.length,r(i),a.length,r(a),r(o),s])},solver_set_initial_value:n._Z3_solver_set_initial_value,solver_check:function(e,t){return n.async_call(n._async_Z3_solver_check,e,t)},solver_check_assumptions:async function(e,t,r){let i=n._malloc(r.length*4);n.HEAPU32.set(r,i/4);try{return await n.async_call(()=>n.ccall(`async_Z3_solver_check_assumptions`,`void`,[`number`,`number`,`number`,`number`],[e,t,r.length,i]))}finally{n._free(i)}},get_implied_equalities:function(e,t,i){let o=n._malloc(4*i.length);try{return{rv:n.ccall(`Z3_get_implied_equalities`,`number`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),o]),class_ids:a(o,i.length)}}finally{n._free(o)}},solver_get_consequences:function(e,t,r,i,a){return n.async_call(n._async_Z3_solver_get_consequences,e,t,r,i,a)},solver_cube:function(e,t,r,i){return n.async_call(n._async_Z3_solver_cube,e,t,r,i)},solver_get_model:n._Z3_solver_get_model,solver_get_proof:n._Z3_solver_get_proof,solver_get_unsat_core:n._Z3_solver_get_unsat_core,solver_get_reason_unknown:function(e,t){return n.ccall(`Z3_solver_get_reason_unknown`,`string`,[`number`,`number`],[e,t])},solver_get_statistics:n._Z3_solver_get_statistics,solver_to_string:function(e,t){return n.ccall(`Z3_solver_to_string`,`string`,[`number`,`number`],[e,t])},solver_to_dimacs_string:function(e,t,r){return n.ccall(`Z3_solver_to_dimacs_string`,`string`,[`number`,`number`,`boolean`],[e,t,r])},stats_to_string:function(e,t){return n.ccall(`Z3_stats_to_string`,`string`,[`number`,`number`],[e,t])},stats_inc_ref:n._Z3_stats_inc_ref,stats_dec_ref:n._Z3_stats_dec_ref,stats_size:function(e,t){let r=n.ccall(`Z3_stats_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},stats_get_key:function(e,t,r){return n.ccall(`Z3_stats_get_key`,`string`,[`number`,`number`,`number`],[e,t,r])},stats_is_uint:function(e,t,r){return n.ccall(`Z3_stats_is_uint`,`boolean`,[`number`,`number`,`number`],[e,t,r])},stats_is_double:function(e,t,r){return n.ccall(`Z3_stats_is_double`,`boolean`,[`number`,`number`,`number`],[e,t,r])},stats_get_uint_value:function(e,t,r){let i=n.ccall(`Z3_stats_get_uint_value`,`number`,[`number`,`number`,`number`],[e,t,r]);return i=new Uint32Array([i])[0],i},stats_get_double_value:n._Z3_stats_get_double_value,get_estimated_alloc_size:n._Z3_get_estimated_alloc_size,algebraic_is_value:function(e,t){return n.ccall(`Z3_algebraic_is_value`,`boolean`,[`number`,`number`],[e,t])},algebraic_is_pos:function(e,t){return n.ccall(`Z3_algebraic_is_pos`,`boolean`,[`number`,`number`],[e,t])},algebraic_is_neg:function(e,t){return n.ccall(`Z3_algebraic_is_neg`,`boolean`,[`number`,`number`],[e,t])},algebraic_is_zero:function(e,t){return n.ccall(`Z3_algebraic_is_zero`,`boolean`,[`number`,`number`],[e,t])},algebraic_sign:n._Z3_algebraic_sign,algebraic_add:n._Z3_algebraic_add,algebraic_sub:n._Z3_algebraic_sub,algebraic_mul:n._Z3_algebraic_mul,algebraic_div:n._Z3_algebraic_div,algebraic_root:n._Z3_algebraic_root,algebraic_power:n._Z3_algebraic_power,algebraic_lt:function(e,t,r){return n.ccall(`Z3_algebraic_lt`,`boolean`,[`number`,`number`,`number`],[e,t,r])},algebraic_gt:function(e,t,r){return n.ccall(`Z3_algebraic_gt`,`boolean`,[`number`,`number`,`number`],[e,t,r])},algebraic_le:function(e,t,r){return n.ccall(`Z3_algebraic_le`,`boolean`,[`number`,`number`,`number`],[e,t,r])},algebraic_ge:function(e,t,r){return n.ccall(`Z3_algebraic_ge`,`boolean`,[`number`,`number`,`number`],[e,t,r])},algebraic_eq:function(e,t,r){return n.ccall(`Z3_algebraic_eq`,`boolean`,[`number`,`number`,`number`],[e,t,r])},algebraic_neq:function(e,t,r){return n.ccall(`Z3_algebraic_neq`,`boolean`,[`number`,`number`,`number`],[e,t,r])},algebraic_roots:async function(e,t,r){let i=n._malloc(r.length*4);n.HEAPU32.set(r,i/4);try{return await n.async_call(()=>n.ccall(`async_Z3_algebraic_roots`,`void`,[`number`,`number`,`number`,`number`],[e,t,r.length,i]))}finally{n._free(i)}},algebraic_eval:async function(e,t,r){let i=n._malloc(r.length*4);n.HEAPU32.set(r,i/4);try{return await n.async_call(()=>n.ccall(`async_Z3_algebraic_eval`,`void`,[`number`,`number`,`number`,`number`],[e,t,r.length,i]))}finally{n._free(i)}},algebraic_get_poly:n._Z3_algebraic_get_poly,algebraic_get_i:function(e,t){let r=n.ccall(`Z3_algebraic_get_i`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},mk_ast_vector:n._Z3_mk_ast_vector,ast_vector_inc_ref:n._Z3_ast_vector_inc_ref,ast_vector_dec_ref:n._Z3_ast_vector_dec_ref,ast_vector_size:function(e,t){let r=n.ccall(`Z3_ast_vector_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},ast_vector_get:n._Z3_ast_vector_get,ast_vector_set:n._Z3_ast_vector_set,ast_vector_resize:n._Z3_ast_vector_resize,ast_vector_push:n._Z3_ast_vector_push,ast_vector_translate:n._Z3_ast_vector_translate,ast_vector_to_string:function(e,t){return n.ccall(`Z3_ast_vector_to_string`,`string`,[`number`,`number`],[e,t])},mk_ast_map:n._Z3_mk_ast_map,ast_map_inc_ref:n._Z3_ast_map_inc_ref,ast_map_dec_ref:n._Z3_ast_map_dec_ref,ast_map_contains:function(e,t,r){return n.ccall(`Z3_ast_map_contains`,`boolean`,[`number`,`number`,`number`],[e,t,r])},ast_map_find:n._Z3_ast_map_find,ast_map_insert:n._Z3_ast_map_insert,ast_map_erase:n._Z3_ast_map_erase,ast_map_reset:n._Z3_ast_map_reset,ast_map_size:function(e,t){let r=n.ccall(`Z3_ast_map_size`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},ast_map_keys:n._Z3_ast_map_keys,ast_map_to_string:function(e,t){return n.ccall(`Z3_ast_map_to_string`,`string`,[`number`,`number`],[e,t])},mk_fixedpoint:n._Z3_mk_fixedpoint,fixedpoint_inc_ref:n._Z3_fixedpoint_inc_ref,fixedpoint_dec_ref:n._Z3_fixedpoint_dec_ref,fixedpoint_add_rule:n._Z3_fixedpoint_add_rule,fixedpoint_add_fact:function(e,t,i,a){return n.ccall(`Z3_fixedpoint_add_fact`,`void`,[`number`,`number`,`number`,`number`,`array`],[e,t,i,a.length,r(a)])},fixedpoint_assert:n._Z3_fixedpoint_assert,fixedpoint_query:function(e,t,r){return n.async_call(n._async_Z3_fixedpoint_query,e,t,r)},fixedpoint_query_relations:async function(e,t,r){let i=n._malloc(r.length*4);n.HEAPU32.set(r,i/4);try{return await n.async_call(()=>n.ccall(`async_Z3_fixedpoint_query_relations`,`void`,[`number`,`number`,`number`,`number`],[e,t,r.length,i]))}finally{n._free(i)}},fixedpoint_get_answer:n._Z3_fixedpoint_get_answer,fixedpoint_get_reason_unknown:function(e,t){return n.ccall(`Z3_fixedpoint_get_reason_unknown`,`string`,[`number`,`number`],[e,t])},fixedpoint_update_rule:n._Z3_fixedpoint_update_rule,fixedpoint_get_num_levels:function(e,t,r){let i=n.ccall(`Z3_fixedpoint_get_num_levels`,`number`,[`number`,`number`,`number`],[e,t,r]);return i=new Uint32Array([i])[0],i},fixedpoint_get_cover_delta:n._Z3_fixedpoint_get_cover_delta,fixedpoint_add_cover:n._Z3_fixedpoint_add_cover,fixedpoint_get_statistics:n._Z3_fixedpoint_get_statistics,fixedpoint_register_relation:n._Z3_fixedpoint_register_relation,fixedpoint_set_predicate_representation:function(e,t,i,a){return n.ccall(`Z3_fixedpoint_set_predicate_representation`,`void`,[`number`,`number`,`number`,`number`,`array`],[e,t,i,a.length,r(a)])},fixedpoint_get_rules:n._Z3_fixedpoint_get_rules,fixedpoint_get_assertions:n._Z3_fixedpoint_get_assertions,fixedpoint_set_params:n._Z3_fixedpoint_set_params,fixedpoint_get_help:function(e,t){return n.ccall(`Z3_fixedpoint_get_help`,`string`,[`number`,`number`],[e,t])},fixedpoint_get_param_descrs:n._Z3_fixedpoint_get_param_descrs,fixedpoint_to_string:function(e,t,i){return n.ccall(`Z3_fixedpoint_to_string`,`string`,[`number`,`number`,`number`,`array`],[e,t,i.length,r(i)])},fixedpoint_from_string:function(e,t,r){return n.ccall(`Z3_fixedpoint_from_string`,`number`,[`number`,`number`,`string`],[e,t,r])},fixedpoint_from_file:function(e,t,r){return n.ccall(`Z3_fixedpoint_from_file`,`number`,[`number`,`number`,`string`],[e,t,r])},mk_fpa_rounding_mode_sort:n._Z3_mk_fpa_rounding_mode_sort,mk_fpa_round_nearest_ties_to_even:n._Z3_mk_fpa_round_nearest_ties_to_even,mk_fpa_rne:n._Z3_mk_fpa_rne,mk_fpa_round_nearest_ties_to_away:n._Z3_mk_fpa_round_nearest_ties_to_away,mk_fpa_rna:n._Z3_mk_fpa_rna,mk_fpa_round_toward_positive:n._Z3_mk_fpa_round_toward_positive,mk_fpa_rtp:n._Z3_mk_fpa_rtp,mk_fpa_round_toward_negative:n._Z3_mk_fpa_round_toward_negative,mk_fpa_rtn:n._Z3_mk_fpa_rtn,mk_fpa_round_toward_zero:n._Z3_mk_fpa_round_toward_zero,mk_fpa_rtz:n._Z3_mk_fpa_rtz,mk_fpa_sort:n._Z3_mk_fpa_sort,mk_fpa_sort_half:n._Z3_mk_fpa_sort_half,mk_fpa_sort_16:n._Z3_mk_fpa_sort_16,mk_fpa_sort_single:n._Z3_mk_fpa_sort_single,mk_fpa_sort_32:n._Z3_mk_fpa_sort_32,mk_fpa_sort_double:n._Z3_mk_fpa_sort_double,mk_fpa_sort_64:n._Z3_mk_fpa_sort_64,mk_fpa_sort_quadruple:n._Z3_mk_fpa_sort_quadruple,mk_fpa_sort_128:n._Z3_mk_fpa_sort_128,mk_fpa_nan:n._Z3_mk_fpa_nan,mk_fpa_inf:n._Z3_mk_fpa_inf,mk_fpa_zero:n._Z3_mk_fpa_zero,mk_fpa_fp:n._Z3_mk_fpa_fp,mk_fpa_numeral_float:n._Z3_mk_fpa_numeral_float,mk_fpa_numeral_double:n._Z3_mk_fpa_numeral_double,mk_fpa_numeral_int:n._Z3_mk_fpa_numeral_int,mk_fpa_numeral_int_uint:n._Z3_mk_fpa_numeral_int_uint,mk_fpa_numeral_int64_uint64:n._Z3_mk_fpa_numeral_int64_uint64,mk_fpa_abs:n._Z3_mk_fpa_abs,mk_fpa_neg:n._Z3_mk_fpa_neg,mk_fpa_add:n._Z3_mk_fpa_add,mk_fpa_sub:n._Z3_mk_fpa_sub,mk_fpa_mul:n._Z3_mk_fpa_mul,mk_fpa_div:n._Z3_mk_fpa_div,mk_fpa_fma:n._Z3_mk_fpa_fma,mk_fpa_sqrt:n._Z3_mk_fpa_sqrt,mk_fpa_rem:n._Z3_mk_fpa_rem,mk_fpa_round_to_integral:n._Z3_mk_fpa_round_to_integral,mk_fpa_min:n._Z3_mk_fpa_min,mk_fpa_max:n._Z3_mk_fpa_max,mk_fpa_leq:n._Z3_mk_fpa_leq,mk_fpa_lt:n._Z3_mk_fpa_lt,mk_fpa_geq:n._Z3_mk_fpa_geq,mk_fpa_gt:n._Z3_mk_fpa_gt,mk_fpa_eq:n._Z3_mk_fpa_eq,mk_fpa_is_normal:n._Z3_mk_fpa_is_normal,mk_fpa_is_subnormal:n._Z3_mk_fpa_is_subnormal,mk_fpa_is_zero:n._Z3_mk_fpa_is_zero,mk_fpa_is_infinite:n._Z3_mk_fpa_is_infinite,mk_fpa_is_nan:n._Z3_mk_fpa_is_nan,mk_fpa_is_negative:n._Z3_mk_fpa_is_negative,mk_fpa_is_positive:n._Z3_mk_fpa_is_positive,mk_fpa_to_fp_bv:n._Z3_mk_fpa_to_fp_bv,mk_fpa_to_fp_float:n._Z3_mk_fpa_to_fp_float,mk_fpa_to_fp_real:n._Z3_mk_fpa_to_fp_real,mk_fpa_to_fp_signed:n._Z3_mk_fpa_to_fp_signed,mk_fpa_to_fp_unsigned:n._Z3_mk_fpa_to_fp_unsigned,mk_fpa_to_ubv:n._Z3_mk_fpa_to_ubv,mk_fpa_to_sbv:n._Z3_mk_fpa_to_sbv,mk_fpa_to_real:n._Z3_mk_fpa_to_real,fpa_get_ebits:function(e,t){let r=n.ccall(`Z3_fpa_get_ebits`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},fpa_get_sbits:function(e,t){let r=n.ccall(`Z3_fpa_get_sbits`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},fpa_is_numeral:function(e,t){return n.ccall(`Z3_fpa_is_numeral`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_nan:function(e,t){return n.ccall(`Z3_fpa_is_numeral_nan`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_inf:function(e,t){return n.ccall(`Z3_fpa_is_numeral_inf`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_zero:function(e,t){return n.ccall(`Z3_fpa_is_numeral_zero`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_normal:function(e,t){return n.ccall(`Z3_fpa_is_numeral_normal`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_subnormal:function(e,t){return n.ccall(`Z3_fpa_is_numeral_subnormal`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_positive:function(e,t){return n.ccall(`Z3_fpa_is_numeral_positive`,`boolean`,[`number`,`number`],[e,t])},fpa_is_numeral_negative:function(e,t){return n.ccall(`Z3_fpa_is_numeral_negative`,`boolean`,[`number`,`number`],[e,t])},fpa_get_numeral_sign_bv:n._Z3_fpa_get_numeral_sign_bv,fpa_get_numeral_significand_bv:n._Z3_fpa_get_numeral_significand_bv,fpa_get_numeral_significand_string:function(e,t){return n.ccall(`Z3_fpa_get_numeral_significand_string`,`string`,[`number`,`number`],[e,t])},fpa_get_numeral_significand_uint64:function(e,t){return n.ccall(`Z3_fpa_get_numeral_significand_uint64`,`boolean`,[`number`,`number`,`number`],[e,t,o])?f(0):null},fpa_get_numeral_exponent_string:function(e,t,r){return n.ccall(`Z3_fpa_get_numeral_exponent_string`,`string`,[`number`,`number`,`boolean`],[e,t,r])},fpa_get_numeral_exponent_int64:function(e,t,r){return n.ccall(`Z3_fpa_get_numeral_exponent_int64`,`boolean`,[`number`,`number`,`number`,`boolean`],[e,t,o,r])?m(0):null},fpa_get_numeral_exponent_bv:n._Z3_fpa_get_numeral_exponent_bv,mk_fpa_to_ieee_bv:n._Z3_mk_fpa_to_ieee_bv,mk_fpa_to_fp_int_real:n._Z3_mk_fpa_to_fp_int_real,mk_optimize:n._Z3_mk_optimize,optimize_inc_ref:n._Z3_optimize_inc_ref,optimize_dec_ref:n._Z3_optimize_dec_ref,optimize_assert:n._Z3_optimize_assert,optimize_assert_and_track:n._Z3_optimize_assert_and_track,optimize_assert_soft:function(e,t,r,i,a){let o=n.ccall(`Z3_optimize_assert_soft`,`number`,[`number`,`number`,`number`,`string`,`number`],[e,t,r,i,a]);return o=new Uint32Array([o])[0],o},optimize_maximize:function(e,t,r){let i=n.ccall(`Z3_optimize_maximize`,`number`,[`number`,`number`,`number`],[e,t,r]);return i=new Uint32Array([i])[0],i},optimize_minimize:function(e,t,r){let i=n.ccall(`Z3_optimize_minimize`,`number`,[`number`,`number`,`number`],[e,t,r]);return i=new Uint32Array([i])[0],i},optimize_push:n._Z3_optimize_push,optimize_pop:n._Z3_optimize_pop,optimize_set_initial_value:n._Z3_optimize_set_initial_value,optimize_check:async function(e,t,r){let i=n._malloc(r.length*4);n.HEAPU32.set(r,i/4);try{return await n.async_call(()=>n.ccall(`async_Z3_optimize_check`,`void`,[`number`,`number`,`number`,`number`],[e,t,r.length,i]))}finally{n._free(i)}},optimize_get_reason_unknown:function(e,t){return n.ccall(`Z3_optimize_get_reason_unknown`,`string`,[`number`,`number`],[e,t])},optimize_get_model:n._Z3_optimize_get_model,optimize_get_unsat_core:n._Z3_optimize_get_unsat_core,optimize_set_params:n._Z3_optimize_set_params,optimize_get_param_descrs:n._Z3_optimize_get_param_descrs,optimize_get_lower:n._Z3_optimize_get_lower,optimize_get_upper:n._Z3_optimize_get_upper,optimize_get_lower_as_vector:n._Z3_optimize_get_lower_as_vector,optimize_get_upper_as_vector:n._Z3_optimize_get_upper_as_vector,optimize_to_string:function(e,t){return n.ccall(`Z3_optimize_to_string`,`string`,[`number`,`number`],[e,t])},optimize_from_string:function(e,t,r){return n.ccall(`Z3_optimize_from_string`,`void`,[`number`,`number`,`string`],[e,t,r])},optimize_from_file:function(e,t,r){return n.ccall(`Z3_optimize_from_file`,`void`,[`number`,`number`,`string`],[e,t,r])},optimize_get_help:function(e,t){return n.ccall(`Z3_optimize_get_help`,`string`,[`number`,`number`],[e,t])},optimize_get_statistics:n._Z3_optimize_get_statistics,optimize_get_assertions:n._Z3_optimize_get_assertions,optimize_get_objectives:n._Z3_optimize_get_objectives,optimize_translate:n._Z3_optimize_translate,polynomial_subresultants:function(e,t,r,i){return n.async_call(n._async_Z3_polynomial_subresultants,e,t,r,i)},rcf_del:n._Z3_rcf_del,rcf_mk_rational:function(e,t){return n.ccall(`Z3_rcf_mk_rational`,`number`,[`number`,`string`],[e,t])},rcf_mk_small_int:n._Z3_rcf_mk_small_int,rcf_mk_pi:n._Z3_rcf_mk_pi,rcf_mk_e:n._Z3_rcf_mk_e,rcf_mk_infinitesimal:n._Z3_rcf_mk_infinitesimal,rcf_mk_roots:function(e,t){let i=n._malloc(4*t.length);try{let o=n.ccall(`Z3_rcf_mk_roots`,`number`,[`number`,`number`,`array`,`number`],[e,t.length,r(t),i]);return o=new Uint32Array([o])[0],{rv:o,roots:a(i,t.length)}}finally{n._free(i)}},rcf_add:n._Z3_rcf_add,rcf_sub:n._Z3_rcf_sub,rcf_mul:n._Z3_rcf_mul,rcf_div:n._Z3_rcf_div,rcf_neg:n._Z3_rcf_neg,rcf_inv:n._Z3_rcf_inv,rcf_power:n._Z3_rcf_power,rcf_lt:function(e,t,r){return n.ccall(`Z3_rcf_lt`,`boolean`,[`number`,`number`,`number`],[e,t,r])},rcf_gt:function(e,t,r){return n.ccall(`Z3_rcf_gt`,`boolean`,[`number`,`number`,`number`],[e,t,r])},rcf_le:function(e,t,r){return n.ccall(`Z3_rcf_le`,`boolean`,[`number`,`number`,`number`],[e,t,r])},rcf_ge:function(e,t,r){return n.ccall(`Z3_rcf_ge`,`boolean`,[`number`,`number`,`number`],[e,t,r])},rcf_eq:function(e,t,r){return n.ccall(`Z3_rcf_eq`,`boolean`,[`number`,`number`,`number`],[e,t,r])},rcf_neq:function(e,t,r){return n.ccall(`Z3_rcf_neq`,`boolean`,[`number`,`number`,`number`],[e,t,r])},rcf_num_to_string:function(e,t,r,i){return n.ccall(`Z3_rcf_num_to_string`,`string`,[`number`,`number`,`boolean`,`boolean`],[e,t,r,i])},rcf_num_to_decimal_string:function(e,t,r){return n.ccall(`Z3_rcf_num_to_decimal_string`,`string`,[`number`,`number`,`number`],[e,t,r])},rcf_get_numerator_denominator:function(e,t){return n.ccall(`Z3_rcf_get_numerator_denominator`,`void`,[`number`,`number`,`number`,`number`],[e,t,o,o+4]),{n:c(0),d:c(1)}},rcf_is_rational:function(e,t){return n.ccall(`Z3_rcf_is_rational`,`boolean`,[`number`,`number`],[e,t])},rcf_is_algebraic:function(e,t){return n.ccall(`Z3_rcf_is_algebraic`,`boolean`,[`number`,`number`],[e,t])},rcf_is_infinitesimal:function(e,t){return n.ccall(`Z3_rcf_is_infinitesimal`,`boolean`,[`number`,`number`],[e,t])},rcf_is_transcendental:function(e,t){return n.ccall(`Z3_rcf_is_transcendental`,`boolean`,[`number`,`number`],[e,t])},rcf_extension_index:function(e,t){let r=n.ccall(`Z3_rcf_extension_index`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},rcf_transcendental_name:n._Z3_rcf_transcendental_name,rcf_infinitesimal_name:n._Z3_rcf_infinitesimal_name,rcf_num_coefficients:function(e,t){let r=n.ccall(`Z3_rcf_num_coefficients`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},rcf_coefficient:n._Z3_rcf_coefficient,rcf_num_sign_conditions:function(e,t){let r=n.ccall(`Z3_rcf_num_sign_conditions`,`number`,[`number`,`number`],[e,t]);return r=new Uint32Array([r])[0],r},rcf_sign_condition_sign:n._Z3_rcf_sign_condition_sign,rcf_num_sign_condition_coefficients:function(e,t,r){let i=n.ccall(`Z3_rcf_num_sign_condition_coefficients`,`number`,[`number`,`number`,`number`],[e,t,r]);return i=new Uint32Array([i])[0],i},rcf_sign_condition_coefficient:n._Z3_rcf_sign_condition_coefficient,fixedpoint_query_from_lvl:function(e,t,r,i){return n.async_call(n._async_Z3_fixedpoint_query_from_lvl,e,t,r,i)},fixedpoint_get_ground_sat_answer:n._Z3_fixedpoint_get_ground_sat_answer,fixedpoint_get_rules_along_trace:n._Z3_fixedpoint_get_rules_along_trace,fixedpoint_get_rule_names_along_trace:n._Z3_fixedpoint_get_rule_names_along_trace,fixedpoint_add_invariant:n._Z3_fixedpoint_add_invariant,fixedpoint_get_reachable:n._Z3_fixedpoint_get_reachable,qe_model_project:function(e,t,i,a){return n.ccall(`Z3_qe_model_project`,`number`,[`number`,`number`,`number`,`array`,`number`],[e,t,i.length,r(i),a])},qe_model_project_skolem:function(e,t,i,a,o){return n.ccall(`Z3_qe_model_project_skolem`,`number`,[`number`,`number`,`number`,`array`,`number`,`number`],[e,t,i.length,r(i),a,o])},qe_model_project_with_witness:function(e,t,i,a,o){return n.ccall(`Z3_qe_model_project_with_witness`,`number`,[`number`,`number`,`number`,`array`,`number`,`number`],[e,t,i.length,r(i),a,o])},model_extrapolate:n._Z3_model_extrapolate,qe_lite:n._Z3_qe_lite}}}})),et=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),n(Qe(),e),n($e(),e)})),tt=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Z3AssertionError=e.Z3Error=void 0;var t=class extends Error{};e.Z3Error=t,e.Z3AssertionError=class extends t{}})),M=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assertExhaustive=n,e.assert=r,e.allSatisfy=i;var t=tt();function n(e){throw Error(`Unexpected code execution detected, should be caught at compile time`)}function r(e,n){if(!e)throw new t.Z3AssertionError(n??`Assertion failed`)}function i(e,t){let n=!1;for(let r of e)if(n=!0,!t(r))return!1;return n===!0||null}})),N=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createApi=c;var t=Ze(),n=et(),r=tt(),i=M(),a=17,o=new t.Mutex;function s(e){let t=e!==null&&(typeof e==`object`||typeof e==`function`)&&e.numerator!==null&&(typeof e.numerator==`number`||typeof e.numerator==`bigint`)&&e.denominator!==null&&(typeof e.denominator==`number`||typeof e.denominator==`bigint`);return t&&(0,i.assert)((typeof e.numerator!=`number`||Number.isSafeInteger(e.numerator))&&(typeof e.denominator!=`number`||Number.isSafeInteger(e.denominator)),`Fraction numerator and denominator must be integers`),t}function c(e,t){let c=new FinalizationRegistry(e=>e());function l(t){e.enable_trace(t)}function u(t){e.disable_trace(t)}function d(){return e.get_version()}function f(){let{major:t,minor:n,build_number:r}=e.get_version();return`${t}.${n}.${r}`}function p(){return e.get_full_version()}function m(t){return e.open_log(t)}function h(t){e.append_log(t)}function g(t,n){typeof t==`string`?e.global_param_set(t,n.toString()):((0,i.assert)(n===void 0,`Can't provide a Record and second parameter to set_param at the same time`),Object.entries(t).forEach(([e,t])=>g(e,t)))}function _(){e.global_param_reset_all()}function ee(t){return e.global_param_get(t)}function v(l,u){let d=e.mk_config();u!=null&&Object.entries(u).forEach(([t,n])=>g(e.set_param_value(d,t,n.toString())));let f=e.mk_context_rc(d);e.set_ast_print_mode(f,n.Z3_ast_print_mode.Z3_PRINT_SMTLIB2_COMPLIANT),e.del_config(d);function p(...e){e.forEach(e=>(0,i.assert)(`ctx`in e?$===e.ctx:$===e,`Context mismatch`))}function m(e){if(e==null)throw TypeError(`Expected non-null pointer`)}function h(){if(e.get_error_code(f)!==n.Z3_error_code.Z3_OK)throw Error(e.get_error_msg($.ptr,e.get_error_code($.ptr)))}function g(e){return h(),e}function _(t){return g(typeof t==`number`?e.mk_int_symbol(f,t):e.mk_string_symbol(f,t))}function v(t){let r=g(e.get_symbol_kind(f,t));switch(r){case n.Z3_symbol_kind.Z3_INT_SYMBOL:return e.get_symbol_int(f,t);case n.Z3_symbol_kind.Z3_STRING_SYMBOL:return e.get_symbol_string(f,t);default:(0,i.assertExhaustive)(r)}}function te(t,n){let r=e.mk_params(f);return e.params_inc_ref(f,r),typeof n==`boolean`?e.params_set_bool(f,r,_(t),n):typeof n==`number`?g(Number.isInteger(n)?e.params_set_uint(f,r,_(t),n):e.params_set_double(f,r,_(t),n)):typeof n==`string`&&g(e.params_set_symbol(f,r,_(t),_(n))),r}function ne(t){switch(g(e.get_ast_kind(f,t))){case n.Z3_ast_kind.Z3_SORT_AST:return y(t);case n.Z3_ast_kind.Z3_FUNC_DECL_AST:return new V(t);default:return b(t)}}function y(t){switch(g(e.get_sort_kind(f,t))){case n.Z3_sort_kind.Z3_BOOL_SORT:return new or(t);case n.Z3_sort_kind.Z3_INT_SORT:case n.Z3_sort_kind.Z3_REAL_SORT:return new mr(t);case n.Z3_sort_kind.Z3_BV_SORT:return new wr(t);case n.Z3_sort_kind.Z3_FLOATING_POINT_SORT:return new Or(t);case n.Z3_sort_kind.Z3_ROUNDING_MODE_SORT:return new Er(t);case n.Z3_sort_kind.Z3_SEQ_SORT:return new Ar(t);case n.Z3_sort_kind.Z3_RE_SORT:return new jr(t);case n.Z3_sort_kind.Z3_ARRAY_SORT:return new Mr(t);default:return e.is_finite_set_sort(f,t)?new Fr(t):new B(t)}}function b(t){let r=g(e.get_ast_kind(f,t));if(r===n.Z3_ast_kind.Z3_QUANTIFIER_AST)return e.is_lambda(f,t)?new Hr(t):new Vr(t);switch(g(e.get_sort_kind(f,e.get_sort(f,t)))){case n.Z3_sort_kind.Z3_BOOL_SORT:return new U(t);case n.Z3_sort_kind.Z3_INT_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Sr(t):new G(t);case n.Z3_sort_kind.Z3_REAL_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Cr(t):new G(t);case n.Z3_sort_kind.Z3_BV_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Tr(t):new q(t);case n.Z3_sort_kind.Z3_FLOATING_POINT_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST||r===n.Z3_ast_kind.Z3_APP_AST?new kr(t):new J(t);case n.Z3_sort_kind.Z3_ROUNDING_MODE_SORT:return new Dr(t);case n.Z3_sort_kind.Z3_SEQ_SORT:return new Y(t);case n.Z3_sort_kind.Z3_RE_SORT:return new X(t);case n.Z3_sort_kind.Z3_ARRAY_SORT:return new Nr(t);default:return e.is_finite_set_sort(f,e.get_sort(f,t))?new Z(t):new H(t)}}function re(e){let t=[];for(let n of e)Je(n)?t.push(...n.values()):t.push(n);return t}function ie(e){return A(e)?e:new sr(e)}function ae(e,t){(0,i.assert)(t.length>0,`At least one argument expected`);let n=ie(t[0]);for(let r=1;r<t.length;r++)n=new sr(g(e(f,n.ptr,ie(t[r]).ptr)));return n}function oe(){g(e.interrupt(f))}function se(t){e.set_ast_print_mode(f,t)}function ce(e){let t=e instanceof tr;return t&&p(e),t}function le(e){let t=e instanceof Zn;return t&&p(e),t}function ue(e){let t=e instanceof B;return t&&p(e),t}function de(e){let t=e instanceof V;return t&&p(e),t}function fe(e){let t=e instanceof ir;return t&&p(e),t}function x(t){if(!C(t))return!1;let r=g(e.get_ast_kind(f,t.ast));return r===n.Z3_ast_kind.Z3_NUMERAL_AST||r===n.Z3_ast_kind.Z3_APP_AST}function S(e){return C(e)&&x(e)&&e.numArgs()===0}function C(e){let t=e instanceof H;return t&&p(e),t}function pe(t){return C(t)&&g(e.get_ast_kind(f,t.ast))===n.Z3_ast_kind.Z3_VAR_AST}function w(e,t){return C(e)&&x(e)&&e.decl().kind()===t}function T(e){let t=e instanceof H&&e.sort.kind()===n.Z3_sort_kind.Z3_BOOL_SORT;return t&&p(e),t}function me(e){return w(e,n.Z3_decl_kind.Z3_OP_TRUE)}function he(e){return w(e,n.Z3_decl_kind.Z3_OP_FALSE)}function ge(e){return w(e,n.Z3_decl_kind.Z3_OP_AND)}function _e(e){return w(e,n.Z3_decl_kind.Z3_OP_OR)}function ve(e){return w(e,n.Z3_decl_kind.Z3_OP_IMPLIES)}function ye(e){return w(e,n.Z3_decl_kind.Z3_OP_NOT)}function be(e){return w(e,n.Z3_decl_kind.Z3_OP_EQ)}function xe(e){return w(e,n.Z3_decl_kind.Z3_OP_DISTINCT)}function Se(e){let t=e instanceof Br;return t&&p(e),t}function E(e){let t=e instanceof G;return t&&p(e),t}function Ce(e){let t=e instanceof mr;return t&&p(e),t}function we(e){return E(e)&&D(e.sort)}function Te(e){let t=e instanceof Sr;return t&&p(e),t}function D(e){return ue(e)&&e.kind()===n.Z3_sort_kind.Z3_INT_SORT}function Ee(e){return E(e)&&Oe(e.sort)}function De(e){let t=e instanceof Cr;return t&&p(e),t}function Oe(e){return ue(e)&&e.kind()===n.Z3_sort_kind.Z3_REAL_SORT}function ke(e){let t=e instanceof K;return t&&p(e),t}function Ae(e){let t=e instanceof wr;return t&&p(e),t}function je(e){let t=e instanceof q;return t&&p(e),t}function Me(e){let t=e instanceof Tr;return t&&p(e),t}function Ne(e){let t=e instanceof Mr;return t&&p(e),t}function Pe(e){let t=e instanceof Nr;return t&&p(e),t}function Fe(e){return w(e,n.Z3_decl_kind.Z3_OP_CONST_ARRAY)}function Ie(e){let t=e instanceof Er;return t&&p(e),t}function Le(e){let t=e instanceof Dr;return t&&p(e),t}function Re(e){let t=e instanceof Or;return t&&p(e),t}function O(e){let t=e instanceof J;return t&&p(e),t}function ze(e){let t=e instanceof kr;return t&&p(e),t}function Be(e){let t=e instanceof Ar;return t&&p(e),t}function k(e){let t=e instanceof Y;return t&&p(e),t}function Ve(e){let t=e instanceof X;return t&&p(e),t}function He(e){return Be(e)&&e.isString()}function Ue(e){return k(e)&&e.isString()}function We(e){let t=e instanceof Fr;return t&&p(e),t}function Ge(e){let t=e instanceof Z;return t&&p(e),t}function A(e){let t=e instanceof sr;return t&&p(e),t}function Ke(e){let t=e instanceof W;return t&&p(e),t}function qe(e){let t=e instanceof cr;return t&&p(e),t}function Je(e){let t=e instanceof Q;return t&&p(e),t}function Ye(e,t){return e.eqIdentity(t)}function Xe(t){return(0,i.assert)(pe(t),`Z3 bound variable expected`),e.get_index_value(f,t.ast)}function j(e){if(typeof e==`boolean`)return M.val(e);if(typeof e==`number`){if(!Number.isFinite(e))throw Error(`cannot represent infinity/NaN (got ${e})`);return Math.floor(e)===e?N.val(e):P.val(e)}if(s(e))return P.val(e);if(typeof e==`bigint`)return N.val(e);if(C(e))return e;(0,i.assert)(!1)}async function Ze(...e){let t=new $.Solver;t.add(...e);let n=await t.check();return n===`sat`?t.model():n}async function Qe(t){return b(g(await e.simplify(f,t.ast)))}let $e={declare:t=>new B(e.mk_uninterpreted_sort(f,_(t)))},et={declare:(t,...n)=>{let r=n.length-1,i=n[r];p(i);let a=[];for(let e=0;e<r;e++)p(n[e]),a.push(n[e].ptr);return new V(e.mk_func_decl(f,_(t),a,i.ptr))},fresh:(...t)=>{let n=t.length-1,r=t[n];p(r);let i=[];for(let e=0;e<n;e++)p(t[e]),i.push(t[e].ptr);return new V(e.mk_fresh_func_decl(f,`f`,i,r.ptr))}},tt={declare:(t,...n)=>{let r=n.length-1,i=n[r];p(i);let a=[];for(let e=0;e<r;e++)p(n[e]),a.push(n[e].ptr);return new V(e.mk_rec_func_decl(f,_(t),a,i.ptr))},addDefinition:(t,n,r)=>{p(t,...n,r),g(e.add_rec_def(f,t.ptr,n.map(e=>e.ast),r.ast))}},M={sort:()=>new or(e.mk_bool_sort(f)),const:t=>new U(e.mk_const(f,_(t),M.sort().ptr)),consts:e=>(typeof e==`string`&&(e=e.split(` `)),e.map(e=>M.const(e))),vector:(e,t)=>{let n=[];for(let r=0;r<t;r++)n.push(M.const(`${e}__${r}`));return n},fresh:(t=`b`)=>new U(e.mk_fresh_const(f,t,M.sort().ptr)),val:t=>t?new U(e.mk_true(f)):new U(e.mk_false(f))},N={sort:()=>new mr(e.mk_int_sort(f)),const:t=>new G(e.mk_const(f,_(t),N.sort().ptr)),consts:e=>(typeof e==`string`&&(e=e.split(` `)),e.map(e=>N.const(e))),vector:(e,t)=>{let n=[];for(let r=0;r<t;r++)n.push(N.const(`${e}__${r}`));return n},fresh:(t=`x`)=>new G(e.mk_fresh_const(f,t,N.sort().ptr)),val:t=>((0,i.assert)(typeof t==`bigint`||typeof t==`string`||Number.isSafeInteger(t)),new Sr(g(e.mk_numeral(f,t.toString(),N.sort().ptr))))},P={sort:()=>new mr(e.mk_real_sort(f)),const:t=>new G(g(e.mk_const(f,_(t),P.sort().ptr))),consts:e=>(typeof e==`string`&&(e=e.split(` `)),e.map(e=>P.const(e))),vector:(e,t)=>{let n=[];for(let r=0;r<t;r++)n.push(P.const(`${e}__${r}`));return n},fresh:(t=`b`)=>new G(e.mk_fresh_const(f,t,P.sort().ptr)),val:t=>(s(t)&&(t=`${t.numerator}/${t.denominator}`),new Cr(e.mk_numeral(f,t.toString(),P.sort().ptr)))},nt=Object.assign(e=>new K(e),{pi:()=>new K(g(e.rcf_mk_pi(f))),e:()=>new K(g(e.rcf_mk_e(f))),infinitesimal:()=>new K(g(e.rcf_mk_infinitesimal(f))),roots:t=>{(0,i.assert)(t.length>0,`Polynomial coefficients cannot be empty`);let n=t.map(e=>e.ptr),{rv:r,roots:a}=e.rcf_mk_roots(f,n),o=[];for(let e=0;e<r;e++)o.push(new K(a[e]));return o}}),F={sort(t){return(0,i.assert)(Number.isSafeInteger(t),`number of bits must be an integer`),new wr(e.mk_bv_sort(f,t))},const(t,n){return new q(g(e.mk_const(f,_(t),Ae(n)?n.ptr:F.sort(n).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>F.const(e,t))},val(t,n){return t===!0?F.val(1,n):t===!1?F.val(0,n):new Tr(g(e.mk_numeral(f,t.toString(),Ae(n)?n.ptr:F.sort(n).ptr)))}},I={sort(t,n){return(0,i.assert)(Number.isSafeInteger(t)&&t>0,`ebits must be a positive integer`),(0,i.assert)(Number.isSafeInteger(n)&&n>0,`sbits must be a positive integer`),new Or(e.mk_fpa_sort(f,t,n))},sort16(){return new Or(e.mk_fpa_sort_16(f))},sort32(){return new Or(e.mk_fpa_sort_32(f))},sort64(){return new Or(e.mk_fpa_sort_64(f))},sort128(){return new Or(e.mk_fpa_sort_128(f))},const(t,n){return new J(g(e.mk_const(f,_(t),n.ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>I.const(e,t))},val(t,n){return new kr(g(e.mk_fpa_numeral_double(f,t,n.ptr)))},NaN(t){return new kr(g(e.mk_fpa_nan(f,t.ptr)))},inf(t,n=!1){return new kr(g(e.mk_fpa_inf(f,t.ptr,n)))},zero(t,n=!1){return new kr(g(e.mk_fpa_zero(f,t.ptr,n)))}},rt={sort(){return new Er(e.mk_fpa_rounding_mode_sort(f))},RNE(){return new Dr(g(e.mk_fpa_rne(f)))},RNA(){return new Dr(g(e.mk_fpa_rna(f)))},RTP(){return new Dr(g(e.mk_fpa_rtp(f)))},RTN(){return new Dr(g(e.mk_fpa_rtn(f)))},RTZ(){return new Dr(g(e.mk_fpa_rtz(f)))}},L={sort(){return new Ar(e.mk_string_sort(f))},const(t){return new Y(g(e.mk_const(f,_(t),L.sort().ptr)))},consts(e){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>L.const(e))},val(t){return new Y(g(e.mk_string(f,t)))},fromCode(t){let n=E(t)?t:N.val(t);return new Y(g(e.mk_string_from_code(f,n.ast)))},fromInt(t){let n=E(t)?t:N.val(t);return new Y(g(e.mk_int_to_str(f,n.ast)))}},it={sort(t){return new Ar(e.mk_seq_sort(f,t.ptr))},empty(t){return new Y(g(e.mk_seq_empty(f,it.sort(t).ptr)))},unit(t){return new Y(g(e.mk_seq_unit(f,t.ast)))}},at={sort(t){return new jr(e.mk_re_sort(f,t.ptr))},toRe(t){let n=k(t)?t:L.val(t);return new X(g(e.mk_seq_to_re(f,n.ast)))}},ot={sort(...t){let n=t.length-1,r=t[n],i=t[0];if(n===1)return new Mr(e.mk_array_sort(f,i.ptr,r.ptr));let a=t.slice(0,n);return new Mr(e.mk_array_sort_n(f,a.map(e=>e.ptr),r.ptr))},const(t,...n){return new Nr(g(e.mk_const(f,_(t),ot.sort(...n).ptr)))},consts(e,...t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>ot.const(e,...t))},K(t,n){return new Nr(g(e.mk_const_array(f,t.ptr,n.ptr)))},fromFunc(t){return new Nr(g(e.mk_as_array(f,t.ptr)))}},st={sort(e){return ot.sort(e,M.sort())},const(t,n){return new Pr(g(e.mk_const(f,_(t),ot.sort(n,M.sort()).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>st.const(e,t))},empty(e){return bn(e)},val(e,t){var n=bn(t);for(let t of e)n=_n(n,t);return n}},ct={sort(t){return new Fr(g(e.mk_finite_set_sort(f,t.ptr)))},const(t,n){return new Z(g(e.mk_const(f,_(t),ct.sort(n).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>ct.const(e,t))},empty(t){return new Z(g(e.mk_finite_set_empty(f,ct.sort(t).ptr)))},singleton(t){return new Z(g(e.mk_finite_set_singleton(f,t.ast)))},range(t,n){return new Z(g(e.mk_finite_set_range(f,t.ast,n.ast)))}},lt=Object.assign(e=>new Ir($,e),{createDatatypes(...e){return Rr(...e)},createPolymorphicDatatype(e,t){return zr(e,t)}});function ut(t){return new B(g(e.mk_type_variable(f,e.mk_string_symbol(f,t))))}function R(t,n,r){return A(t)&&Ke(n)&&Ke(r)?zt(t,n,r):((0,i.assert)(!A(t)&&!Ke(n)&&!Ke(r),`Mixed expressions and goals`),typeof t==`boolean`&&(t=M.val(t)),n=j(n),r=j(r),b(g(e.mk_ite(f,t.ptr,n.ast,r.ast))))}function dt(...t){return(0,i.assert)(t.length>0,`Can't make Distinct ouf of nothing`),new U(g(e.mk_distinct(f,t.map(e=>(e=j(e),p(e),e.ast)))))}function ft(t,n){return p(n),b(g(e.mk_const(f,_(t),n.ptr)))}function pt(e,t){return p(t),typeof e==`string`&&(e=e.split(` `)),e.map(e=>ft(e,t))}function mt(t,n=`c`){return p(t),b(e.mk_fresh_const(t.ctx.ptr,n,t.ptr))}function ht(t,n){return p(n),b(e.mk_bound(n.ctx.ptr,t,n.ptr))}function gt(t,n){return t=j(t),n=j(n),p(t,n),new U(g(e.mk_implies(f,t.ptr,n.ptr)))}function _t(t,n){return t=j(t),n=j(n),p(t,n),new U(g(e.mk_iff(f,t.ptr,n.ptr)))}function vt(e,t){return e=j(e),t=j(t),p(e,t),e.eq(t)}function yt(t,n){return t=j(t),n=j(n),p(t,n),new U(g(e.mk_xor(f,t.ptr,n.ptr)))}function bt(t){return typeof t==`boolean`&&(t=j(t)),p(t),A(t)?new sr(g(e.probe_not(f,t.ptr))):new U(g(e.mk_not(f,t.ptr)))}function xt(...t){if(t.length==1&&t[0]instanceof $.AstVector&&(t=[...t[0].values()],(0,i.assert)((0,i.allSatisfy)(t,T)??!0,`AstVector containing not bools`)),(0,i.allSatisfy)(t,A)??!1)return ae(e.probe_and,t);{let n=t.map(j);return p(...n),new U(g(e.mk_and(f,n.map(e=>e.ptr))))}}function St(...t){if(t.length==1&&t[0]instanceof $.AstVector&&(t=[...t[0].values()],(0,i.assert)((0,i.allSatisfy)(t,T)??!0,`AstVector containing not bools`)),(0,i.allSatisfy)(t,A)??!1)return ae(e.probe_or,t);{let n=t.map(j);return p(...n),new U(g(e.mk_or(f,n.map(e=>e.ptr))))}}function Ct(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new U(g(e.mk_pbeq(f,t.map(e=>e.ast),n,r)))}function wt(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new U(g(e.mk_pbge(f,t.map(e=>e.ast),n,r)))}function Tt(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new U(g(e.mk_pble(f,t.map(e=>e.ast),n,r)))}function Et(t,n){return p(...t),new U(g(e.mk_atmost(f,t.map(e=>e.ast),n)))}function Dt(t,n){return p(...t),new U(g(e.mk_atleast(f,t.map(e=>e.ast),n)))}function Ot(t,n,r=1){if(!(0,i.allSatisfy)(t,S))throw Error(`Quantifier variables must be constants`);return new Vr(g(e.mk_quantifier_const_ex(f,!0,r,_(``),_(``),t.map(e=>e.ptr),[],[],n.ptr)))}function kt(t,n,r=1){if(!(0,i.allSatisfy)(t,S))throw Error(`Quantifier variables must be constants`);return new Vr(g(e.mk_quantifier_const_ex(f,!1,r,_(``),_(``),t.map(e=>e.ptr),[],[],n.ptr)))}function At(t,n){if(!(0,i.allSatisfy)(t,S))throw Error(`Quantifier variables must be constants`);return new Hr(g(e.mk_lambda_const(f,t.map(e=>e.ptr),n.ptr)))}function jt(t){return t=j(t),p(t),(0,i.assert)(we(t),`Int expression expected`),new G(g(e.mk_int2real(f,t.ast)))}function Mt(t){return C(t)||(t=P.val(t)),p(t),(0,i.assert)(Ee(t),`Real expression expected`),new G(g(e.mk_real2int(f,t.ast)))}function Nt(t){return C(t)||(t=P.val(t)),p(t),(0,i.assert)(Ee(t),`Real expression expected`),new U(g(e.mk_is_int(f,t.ast)))}function Pt(e){return C(e)||(e=P.val(e)),e.pow(`1/2`)}function Ft(e){return C(e)||(e=P.val(e)),e.pow(`1/3`)}function It(t,n){return p(t),new G(g(e.mk_bv2int(f,t.ast,n)))}function Lt(t,n){return E(t)?(0,i.assert)(we(t),`parameter must be an integer`):((0,i.assert)(typeof t!=`number`||Number.isSafeInteger(t),`parameter must not have decimal places`),t=N.val(t)),new q(g(e.mk_int2bv(f,n,t.ast)))}function Rt(...t){return p(...t),t.reduce((t,n)=>new q(g(e.mk_concat(f,t.ast,n.ast))))}function zt(t,n,r){return p(t,n,r),new W(g(e.tactic_cond(f,t.ptr,n.ptr,r.ptr)))}function z(e){return typeof e==`string`?new W(e):e}function Bt(t,n,...r){let i=z(t),a=z(n);p(i,a),i=new W(g(e.tactic_and_then(f,i.ptr,a.ptr)));for(let t of r)a=z(t),p(i,a),i=new W(g(e.tactic_and_then(f,i.ptr,a.ptr)));return i}function Vt(t,n,...r){let i=z(t),a=z(n);p(i,a),i=new W(g(e.tactic_or_else(f,i.ptr,a.ptr)));for(let t of r)a=z(t),p(i,a),i=new W(g(e.tactic_or_else(f,i.ptr,a.ptr)));return i}function Ht(t,n){let r=z(t);p(r);let i=n===void 0?4294967295:n;return new W(g(e.tactic_repeat(f,r.ptr,i)))}function Ut(t,n){let r=z(t);return p(r),new W(g(e.tactic_try_for(f,r.ptr,n)))}function Wt(t,n){let r=z(n);return p(t,r),new W(g(e.tactic_when(f,t.ptr,r.ptr)))}function Gt(){return new W(g(e.tactic_skip(f)))}function Kt(){return new W(g(e.tactic_fail(f)))}function qt(t){return p(t),new W(g(e.tactic_fail_if(f,t.ptr)))}function Jt(...t){(0,i.assert)(t.length>0,`ParOr requires at least one tactic`);let n=t.map(e=>z(e));p(...n);let r=n.map(e=>e.ptr);return new W(g(e.tactic_par_or(f,r)))}function Yt(t,n){let r=z(t),i=z(n);return p(r,i),new W(g(e.tactic_par_and_then(f,r.ptr,i.ptr)))}function Xt(t,n){let r=z(t);p(r);let i=g(e.mk_params(f));e.params_inc_ref(f,i);try{for(let[t,r]of Object.entries(n)){let n=_(t);if(typeof r==`boolean`)e.params_set_bool(f,i,n,r);else if(typeof r==`number`)Number.isInteger(r)?e.params_set_uint(f,i,n,r):e.params_set_double(f,i,n,r);else if(typeof r==`string`)e.params_set_symbol(f,i,n,_(r));else throw Error(`Unsupported parameter type for ${t}`)}return new W(g(e.tactic_using_params(f,r.ptr,i)))}finally{e.params_dec_ref(f,i)}}function Zt(t,n){return new U(g(e.mk_lt(f,t.ast,t.sort.cast(n).ast)))}function Qt(t,n){return new U(g(e.mk_gt(f,t.ast,t.sort.cast(n).ast)))}function $t(t,n){return new U(g(e.mk_le(f,t.ast,t.sort.cast(n).ast)))}function en(t,n){return new U(g(e.mk_ge(f,t.ast,t.sort.cast(n).ast)))}function tn(t,n){return new U(g(e.mk_bvult(f,t.ast,t.sort.cast(n).ast)))}function nn(t,n){return new U(g(e.mk_bvugt(f,t.ast,t.sort.cast(n).ast)))}function rn(t,n){return new U(g(e.mk_bvule(f,t.ast,t.sort.cast(n).ast)))}function an(t,n){return new U(g(e.mk_bvuge(f,t.ast,t.sort.cast(n).ast)))}function on(t,n){return new U(g(e.mk_bvslt(f,t.ast,t.sort.cast(n).ast)))}function sn(t,n){return new U(g(e.mk_bvsgt(f,t.ast,t.sort.cast(n).ast)))}function cn(t,n){return new U(g(e.mk_bvsle(f,t.ast,t.sort.cast(n).ast)))}function ln(t,n){return new U(g(e.mk_bvsge(f,t.ast,t.sort.cast(n).ast)))}function un(t,n,r){return new q(g(e.mk_extract(f,t,n,r.ast)))}function dn(t,...n){let r=n.map((e,n)=>t.domain_n(n).cast(e));if(r.length===1)return b(g(e.mk_select(f,t.ast,r[0].ast)));let i=r.map(e=>e.ast);return b(g(e.mk_select_n(f,t.ast,i)))}function fn(t,...n){let r=n.map((e,r)=>r===n.length-1?t.range().cast(e):t.domain_n(r).cast(e));if(r.length<=1)throw Error(`Array store requires both index and value arguments`);if(r.length===2)return b(g(e.mk_store(f,t.ast,r[0].ast,r[1].ast)));let i=r.slice(0,r.length-1).map(e=>e.ast);return b(g(e.mk_store_n(f,t.ast,i,r[r.length-1].ast)))}function pn(t,n){return b(g(e.mk_array_ext(f,t.ast,n.ast)))}function mn(...t){return new Pr(g(e.mk_set_union(f,t.map(e=>e.ast))))}function hn(...t){return new Pr(g(e.mk_set_intersect(f,t.map(e=>e.ast))))}function gn(t,n){return new Pr(g(e.mk_set_difference(f,t.ast,n.ast)))}function _n(t,n){let r=t.elemSort().cast(n);return new Pr(g(e.mk_set_add(f,t.ast,r.ast)))}function vn(t,n){let r=t.elemSort().cast(n);return new Pr(g(e.mk_set_del(f,t.ast,r.ast)))}function yn(t){return new Pr(g(e.mk_set_complement(f,t.ast)))}function bn(t){return new Pr(g(e.mk_empty_set(f,t.ptr)))}function xn(t){return new Pr(g(e.mk_full_set(f,t.ptr)))}function Sn(t,n){let r=n.elemSort().cast(t);return new U(g(e.mk_set_member(f,r.ast,n.ast)))}function Cn(t,n){return new U(g(e.mk_set_subset(f,t.ast,n.ast)))}function wn(t,n){let r=k(t)?t:L.val(t);return new U(g(e.mk_seq_in_re(f,r.ast,n.ast)))}function Tn(...t){if(t.length===0)throw Error(`Union requires at least one argument`);return t.length===1?t[0]:new X(g(e.mk_re_union(f,t.map(e=>e.ast))))}function En(...t){if(t.length===0)throw Error(`Intersect requires at least one argument`);return t.length===1?t[0]:new X(g(e.mk_re_intersect(f,t.map(e=>e.ast))))}function Dn(...t){if(t.length===0)throw Error(`ReConcat requires at least one argument`);return t.length===1?t[0]:new X(g(e.mk_re_concat(f,t.map(e=>e.ast))))}function On(t){return new X(g(e.mk_re_plus(f,t.ast)))}function kn(t){return new X(g(e.mk_re_star(f,t.ast)))}function An(t){return new X(g(e.mk_re_option(f,t.ast)))}function jn(t){return new X(g(e.mk_re_complement(f,t.ast)))}function Mn(t,n){return new X(g(e.mk_re_diff(f,t.ast,n.ast)))}function Nn(t,n){let r=k(t)?t:L.val(t),i=k(n)?n:L.val(n);return new X(g(e.mk_re_range(f,r.ast,i.ast)))}function Pn(t,n,r=0){return new X(g(e.mk_re_loop(f,t.ast,n,r)))}function Fn(t,n){return new X(g(e.mk_re_power(f,t.ast,n)))}function In(t){return new X(g(e.mk_re_allchar(f,t.ptr)))}function Ln(t){return new X(g(e.mk_re_empty(f,t.ptr)))}function Rn(t){return new X(g(e.mk_re_full(f,t.ptr)))}function zn(t,n){return new V(g(e.mk_partial_order(f,t.ptr,n)))}function Bn(t,n){return new V(g(e.mk_linear_order(f,t.ptr,n)))}function Vn(t,n){return new V(g(e.mk_piecewise_linear_order(f,t.ptr,n)))}function Hn(t,n){return new V(g(e.mk_tree_order(f,t.ptr,n)))}function Un(t){return new V(g(e.mk_transitive_closure(f,t.ptr)))}function Wn(t){return new H(g(e.mk_char(f,t)))}function Gn(t,n){return new U(g(e.mk_char_le(f,t.ast,n.ast)))}function Kn(t){return new G(g(e.mk_char_to_int(f,t.ast)))}function qn(t){return new H(g(e.mk_char_to_bv(f,t.ast)))}function Jn(t){return new H(g(e.mk_char_from_bv(f,t.ast)))}function Yn(t){return new U(g(e.mk_char_is_digit(f,t.ast)))}async function Xn(t,n,r){let i=await e.polynomial_subresultants(f,t.ast,n.ast,r.ast);return new Q(g(i))}class Zn{constructor(t){this.ptr=t,this.ctx=$;let n=this.ast;e.inc_ref(f,n),c.register(this,()=>e.dec_ref(f,n),this)}get ast(){return this.ptr}id(){return e.get_ast_id(f,this.ast)}eqIdentity(t){return p(t),g(e.is_eq_ast(f,this.ast,t.ast))}neqIdentity(e){return p(e),!this.eqIdentity(e)}sexpr(){return e.ast_to_string(f,this.ast)}hash(){return e.get_ast_hash(f,this.ast)}toString(){return this.sexpr()}}class Qn{get ptr(){return m(this._ptr),this._ptr}constructor(n=e.mk_solver(f)){this.ctx=$;let r;r=typeof n==`string`?g(e.mk_solver_for_logic(f,_(n))):n,this._ptr=r,e.solver_inc_ref(f,r);let i={value:null};this._onClauseCallbackIdx=i,c.register(this,()=>{e.solver_dec_ref(f,r),i.value!==null&&t&&(t.removeFunction(i.value),i.value=null)},this)}set(t,n){e.solver_set_params(f,this.ptr,te(t,n))}push(){e.solver_push(f,this.ptr)}pop(t=1){e.solver_pop(f,this.ptr,t)}numScopes(){return e.solver_get_num_scopes(f,this.ptr)}reset(){e.solver_reset(f,this.ptr)}add(...t){re(t).forEach(t=>{p(t),g(e.solver_assert(f,this.ptr,t.ast))})}addAndTrack(t,n){typeof n==`string`&&(n=M.const(n)),(0,i.assert)(S(n),`Provided expression that is not a constant to addAndTrack`),g(e.solver_assert_and_track(f,this.ptr,t.ast,n.ast))}addSimplifier(t){p(t),g(e.solver_add_simplifier(f,this.ptr,t.ptr))}assertions(){return new Q(g(e.solver_get_assertions(f,this.ptr)))}async check(...t){let r=re(t).map(e=>(p(e),e.ast)),a=await o.runExclusive(()=>g(e.solver_check_assumptions(f,this.ptr,r)));switch(a){case n.Z3_lbool.Z3_L_FALSE:return`unsat`;case n.Z3_lbool.Z3_L_TRUE:return`sat`;case n.Z3_lbool.Z3_L_UNDEF:return`unknown`;default:(0,i.assertExhaustive)(a)}}unsatCore(){return new Q(g(e.solver_get_unsat_core(f,this.ptr)))}model(){return new tr(g(e.solver_get_model(f,this.ptr)))}statistics(){return new nr(g(e.solver_get_statistics(f,this.ptr)))}reasonUnknown(){return g(e.solver_get_reason_unknown(f,this.ptr))}toString(){return g(e.solver_to_string(f,this.ptr))}toSmtlib2(t=`unknown`){let n=this.assertions(),r=n.length(),i,a;if(r>0){a=[];for(let e=0;e<r-1;e++)a.push(n.get(e).ast);i=n.get(r-1).ast}else a=[],i=$.Bool.val(!0).ast;return g(e.benchmark_to_smtlib_string(f,``,``,t,``,a,i))}dimacs(t=!0){return g(e.solver_to_dimacs_string(f,this.ptr,t))}translate(t){let n=g(e.solver_translate(f,this.ptr,t.ptr));return new t.Solver(n)}proof(){let t=e.solver_get_proof(f,this.ptr);return h(),t?b(t):null}fromString(t){e.solver_from_string(f,this.ptr,t),h()}units(){return new Q(g(e.solver_get_units(f,this.ptr)))}nonUnits(){return new Q(g(e.solver_get_non_units(f,this.ptr)))}trail(){return new Q(g(e.solver_get_trail(f,this.ptr)))}trailLevels(){let t=g(e.solver_get_trail(f,this.ptr)),n=e.ast_vector_size(f,t);return g(e.solver_get_levels(f,this.ptr,t,n))}async cube(t,n=4294967295){let r=t??new Q,i=await o.runExclusive(()=>g(e.solver_cube(f,this.ptr,r.ptr,n)));return new Q(i)}async getConsequences(t,r){let i=new Q,a=new Q,s=new Q;re(t).forEach(t=>{p(t),e.ast_vector_push(f,i.ptr,t.ast)}),r.forEach(t=>{p(t),e.ast_vector_push(f,a.ptr,t.ast)});let c=await o.runExclusive(()=>g(e.solver_get_consequences(f,this.ptr,i.ptr,a.ptr,s.ptr))),l;switch(c){case n.Z3_lbool.Z3_L_FALSE:l=`unsat`;break;case n.Z3_lbool.Z3_L_TRUE:l=`sat`;break;default:l=`unknown`}return[l,s]}solveFor(t,n,r){let i=new Q,a=new Q,o=new Q;t.forEach(t=>{p(t),e.ast_vector_push(f,i.ptr,t.ast)}),n.forEach(t=>{p(t),e.ast_vector_push(f,a.ptr,t.ast)}),r.forEach(t=>{p(t),e.ast_vector_push(f,o.ptr,t.ast)}),e.solver_solve_for(f,this.ptr,i.ptr,a.ptr,o.ptr),h()}setInitialValue(t,n){p(t),p(n),e.solver_set_initial_value(f,this.ptr,t.ast,n.ast),h()}congruenceRoot(t){return p(t),b(g(e.solver_congruence_root(f,this.ptr,t.ast)))}congruenceNext(t){return p(t),b(g(e.solver_congruence_next(f,this.ptr,t.ast)))}congruenceExplain(t,n){return p(t),p(n),b(g(e.solver_congruence_explain(f,this.ptr,t.ast,n.ast)))}fromFile(t){e.solver_from_file(f,this.ptr,t),h()}release(){this._onClauseCallbackIdx.value!==null&&t&&(t.removeFunction(this._onClauseCallbackIdx.value),this._onClauseCallbackIdx.value=null),e.solver_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}registerOnClause(e){if(!t)throw Error(`registerOnClause requires the Emscripten module; pass it to createApi`);this._onClauseCallbackIdx.value!==null&&(t.removeFunction(this._onClauseCallbackIdx.value),this._onClauseCallbackIdx.value=null);let n=t.addFunction((n,r,i,a,o)=>{let s=r?b(r):null,c=[];for(let e=0;e<i;e++)c.push(t.HEAPU32[(a>>2)+e]);e(s,c,new Q(o))},`viiiii`);this._onClauseCallbackIdx.value=n,t._Z3_solver_register_on_clause(f,this.ptr,0,n)}}class $n{get ptr(){return m(this._ptr),this._ptr}constructor(t=e.mk_optimize(f)){this.ctx=$;let n;n=t,this._ptr=n,e.optimize_inc_ref(f,n),c.register(this,()=>e.optimize_dec_ref(f,n),this)}set(t,n){e.optimize_set_params(f,this.ptr,te(t,n))}push(){e.optimize_push(f,this.ptr)}pop(){e.optimize_pop(f,this.ptr)}add(...t){re(t).forEach(t=>{p(t),g(e.optimize_assert(f,this.ptr,t.ast))})}addSoft(t,n,r=``){s(n)&&(n=`${n.numerator}/${n.denominator}`),g(e.optimize_assert_soft(f,this.ptr,t.ast,n.toString(),_(r)))}addAndTrack(t,n){typeof n==`string`&&(n=M.const(n)),(0,i.assert)(S(n),`Provided expression that is not a constant to addAndTrack`),g(e.optimize_assert_and_track(f,this.ptr,t.ast,n.ast))}assertions(){return new Q(g(e.optimize_get_assertions(f,this.ptr)))}maximize(t){return g(e.optimize_maximize(f,this.ptr,t.ast))}minimize(t){return g(e.optimize_minimize(f,this.ptr,t.ast))}getLower(t){return b(g(e.optimize_get_lower(f,this.ptr,t)))}getUpper(t){return b(g(e.optimize_get_upper(f,this.ptr,t)))}getLowerAsVector(t){return new Q(g(e.optimize_get_lower_as_vector(f,this.ptr,t)))}getUpperAsVector(t){return new Q(g(e.optimize_get_upper_as_vector(f,this.ptr,t)))}unsatCore(){return new Q(g(e.optimize_get_unsat_core(f,this.ptr)))}objectives(){return new Q(g(e.optimize_get_objectives(f,this.ptr)))}reasonUnknown(){return g(e.optimize_get_reason_unknown(f,this.ptr))}fromFile(t){e.optimize_from_file(f,this.ptr,t),h()}translate(t){let n=g(e.optimize_translate(f,this.ptr,t.ptr));return new t.Optimize(n)}async check(...t){let r=re(t).map(e=>(p(e),e.ast)),a=await o.runExclusive(()=>g(e.optimize_check(f,this.ptr,r)));switch(a){case n.Z3_lbool.Z3_L_FALSE:return`unsat`;case n.Z3_lbool.Z3_L_TRUE:return`sat`;case n.Z3_lbool.Z3_L_UNDEF:return`unknown`;default:(0,i.assertExhaustive)(a)}}model(){return new tr(g(e.optimize_get_model(f,this.ptr)))}statistics(){return new nr(g(e.optimize_get_statistics(f,this.ptr)))}setInitialValue(t,n){p(t),p(n),e.optimize_set_initial_value(f,this.ptr,t.ast,n.ast),h()}toString(){return g(e.optimize_to_string(f,this.ptr))}fromString(t){e.optimize_from_string(f,this.ptr,t),h()}release(){e.optimize_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}}class er{get ptr(){return m(this._ptr),this._ptr}constructor(t=e.mk_fixedpoint(f)){this.ctx=$;let n;n=t,this._ptr=n,e.fixedpoint_inc_ref(f,n),c.register(this,()=>e.fixedpoint_dec_ref(f,n),this)}set(t,n){e.fixedpoint_set_params(f,this.ptr,te(t,n))}help(){return g(e.fixedpoint_get_help(f,this.ptr))}add(...t){t.forEach(t=>{p(t),g(e.fixedpoint_assert(f,this.ptr,t.ast))})}registerRelation(t){p(t),g(e.fixedpoint_register_relation(f,this.ptr,t.ptr))}addRule(t,n){p(t);let r=_(n??``);g(e.fixedpoint_add_rule(f,this.ptr,t.ast,r))}addFact(t,...n){p(t),g(e.fixedpoint_add_fact(f,this.ptr,t.ptr,n))}updateRule(t,n){p(t);let r=_(n);g(e.fixedpoint_update_rule(f,this.ptr,t.ast,r))}async query(t){p(t);let r=await o.runExclusive(()=>g(e.fixedpoint_query(f,this.ptr,t.ast)));switch(r){case n.Z3_lbool.Z3_L_FALSE:return`unsat`;case n.Z3_lbool.Z3_L_TRUE:return`sat`;case n.Z3_lbool.Z3_L_UNDEF:return`unknown`;default:(0,i.assertExhaustive)(r)}}async queryRelations(...t){t.forEach(e=>p(e));let r=t.map(e=>e.ptr),a=await o.runExclusive(()=>g(e.fixedpoint_query_relations(f,this.ptr,r)));switch(a){case n.Z3_lbool.Z3_L_FALSE:return`unsat`;case n.Z3_lbool.Z3_L_TRUE:return`sat`;case n.Z3_lbool.Z3_L_UNDEF:return`unknown`;default:(0,i.assertExhaustive)(a)}}getAnswer(){let t=g(e.fixedpoint_get_answer(f,this.ptr));return t?b(t):null}getReasonUnknown(){return g(e.fixedpoint_get_reason_unknown(f,this.ptr))}getNumLevels(t){return p(t),g(e.fixedpoint_get_num_levels(f,this.ptr,t.ptr))}getCoverDelta(t,n){p(n);let r=g(e.fixedpoint_get_cover_delta(f,this.ptr,t,n.ptr));return r?b(r):null}addCover(t,n,r){p(n),p(r),g(e.fixedpoint_add_cover(f,this.ptr,t,n.ptr,r.ast))}getRules(){return new Q(g(e.fixedpoint_get_rules(f,this.ptr)))}getAssertions(){return new Q(g(e.fixedpoint_get_assertions(f,this.ptr)))}setPredicateRepresentation(t,n){p(t);let r=n.map(e=>_(e));g(e.fixedpoint_set_predicate_representation(f,this.ptr,t.ptr,r))}toString(){return g(e.fixedpoint_to_string(f,this.ptr,[]))}fromString(t){let n=g(e.fixedpoint_from_string(f,this.ptr,t));return new Q(n)}fromFile(t){let n=g(e.fixedpoint_from_file(f,this.ptr,t));return new Q(n)}statistics(){return new nr(g(e.fixedpoint_get_statistics(f,this.ptr)))}release(){e.fixedpoint_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}}class tr{get ptr(){return m(this._ptr),this._ptr}constructor(t=e.mk_model(f)){this.ctx=$,this._ptr=t,e.model_inc_ref(f,t),c.register(this,()=>e.model_dec_ref(f,t),this)}length(){return e.model_get_num_consts(f,this.ptr)+e.model_get_num_funcs(f,this.ptr)}[Symbol.iterator](){return this.values()}*entries(){let e=this.length();for(let t=0;t<e;t++)yield[t,this.get(t)]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}decls(){return[...this.values()]}sexpr(){return g(e.model_to_string(f,this.ptr))}toString(){return this.sexpr()}eval(t,n=!1){p(t);let i=g(e.model_eval(f,this.ptr,t.ast,n));if(i===null)throw new r.Z3Error(`Failed to evaluate expression in the model`);return b(i)}get(t,n){if((0,i.assert)(n===void 0||typeof t==`number`),typeof t==`number`){let r=this.length();if(t>=r)throw RangeError(`expected index ${t} to be less than length ${r}`);if(n===void 0){let n=g(e.model_get_num_consts(f,this.ptr));return t<n?new V(g(e.model_get_const_decl(f,this.ptr,t))):new V(g(e.model_get_func_decl(f,this.ptr,t-n)))}if(n<0&&(n+=r),n>=r)throw RangeError(`expected index ${n} to be less than length ${r}`);let i=[];for(let e=t;e<n;e++)i.push(this.get(e));return i}if(de(t)||C(t)&&S(t)){let e=this.getInterp(t);return(0,i.assert)(e!==null),e}if(ue(t))return this.getUniverse(t);(0,i.assert)(!1,`Number, declaration or constant expected`)}updateValue(t,n){if(p(t),p(n),C(t)&&(t=t.decl()),de(t)&&t.arity()!==0&&fe(n)){let e=this.addFuncInterp(t,n.elseValue());for(let t=0;t<n.numEntries();t++){let r=n.entry(t),i=r.numArgs(),a=globalThis.Array.from({length:i},(e,t)=>r.argValue(t));e.addEntry(a,r.value())}return}if(!de(t)||t.arity()!==0)throw new r.Z3Error(`Expecting 0-ary function or constant expression`);if(!le(n))throw new r.Z3Error(`Only func declarations can be assigned to func interpretations`);g(e.add_const_interp(f,this.ptr,t.ptr,n.ast))}addFuncInterp(t,n){let r=g(e.add_func_interp(f,this.ptr,t.ptr,t.range().cast(n).ptr));return new ir(r)}getInterp(t){if((0,i.assert)(de(t)||S(t),`Declaration expected`),S(t)&&((0,i.assert)(C(t)),t=t.decl()),(0,i.assert)(de(t)),t.arity()===0){let n=g(e.model_get_const_interp(f,this.ptr,t.ptr));return n===null?null:b(n)}{let n=g(e.model_get_func_interp(f,this.ptr,t.ptr));return n===null?null:new ir(n)}}getUniverse(t){return p(t),new Q(g(e.model_get_sort_universe(f,this.ptr,t.ptr)))}numSorts(){return g(e.model_get_num_sorts(f,this.ptr))}getSort(t){return y(g(e.model_get_sort(f,this.ptr,t)))}getSorts(){let e=this.numSorts(),t=[];for(let n=0;n<e;n++)t.push(this.getSort(n));return t}sortUniverse(e){return this.getUniverse(e)}translate(t){let n=g(e.model_translate(f,this.ptr,t.ptr));return new t.Model(n)}release(){e.model_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}}class nr{get ptr(){return m(this._ptr),this._ptr}constructor(t){this.ctx=$,this._ptr=t,e.stats_inc_ref(f,t),c.register(this,()=>e.stats_dec_ref(f,t),this)}size(){return e.stats_size(f,this.ptr)}keys(){let t=[],n=this.size();for(let r=0;r<n;r++)t.push(e.stats_get_key(f,this.ptr,r));return t}get(t){let n=this.size();for(let r=0;r<n;r++)if(e.stats_get_key(f,this.ptr,r)===t)return e.stats_is_uint(f,this.ptr,r)?e.stats_get_uint_value(f,this.ptr,r):e.stats_get_double_value(f,this.ptr,r);throw Error(`Statistics key not found: ${t}`)}entries(){let t=[],n=this.size();for(let r=0;r<n;r++){let n=e.stats_get_key(f,this.ptr,r),i=e.stats_is_uint(f,this.ptr,r),a=e.stats_is_double(f,this.ptr,r),o=i?e.stats_get_uint_value(f,this.ptr,r):e.stats_get_double_value(f,this.ptr,r);t.push({__typename:`StatisticsEntry`,key:n,value:o,isUint:i,isDouble:a})}return t}[Symbol.iterator](){return this.entries()[Symbol.iterator]()}release(){e.stats_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}}class rr{constructor(t){this.ptr=t,this.ctx=$,e.func_entry_inc_ref(f,t),c.register(this,()=>e.func_entry_dec_ref(f,t),this)}numArgs(){return g(e.func_entry_get_num_args(f,this.ptr))}argValue(t){return b(g(e.func_entry_get_arg(f,this.ptr,t)))}value(){return b(g(e.func_entry_get_value(f,this.ptr)))}}class ir{constructor(t){this.ptr=t,this.ctx=$,e.func_interp_inc_ref(f,t),c.register(this,()=>e.func_interp_dec_ref(f,t),this)}elseValue(){return b(g(e.func_interp_get_else(f,this.ptr)))}numEntries(){return g(e.func_interp_get_num_entries(f,this.ptr))}arity(){return g(e.func_interp_get_arity(f,this.ptr))}entry(t){return new rr(g(e.func_interp_get_entry(f,this.ptr,t)))}addEntry(t,n){let r=new Q;for(let e of t)r.push(e);p(r),p(n),(0,i.assert)(this.arity()===r.length(),`Number of arguments in entry doesn't match function arity`),g(e.func_interp_add_entry(f,this.ptr,r.ptr,n.ptr))}}class B extends Zn{get ast(){return e.sort_to_ast(f,this.ptr)}kind(){return e.get_sort_kind(f,this.ptr)}subsort(e){return p(e),!1}cast(e){return p(e),(0,i.assert)(e.sort.eqIdentity(e.sort),`Sort mismatch`),e}name(){return v(e.get_sort_name(f,this.ptr))}eqIdentity(t){return p(t),g(e.is_eq_sort(f,this.ptr,t.ptr))}neqIdentity(e){return!this.eqIdentity(e)}}class V extends Zn{get ast(){return e.func_decl_to_ast(f,this.ptr)}name(){return v(e.get_decl_name(f,this.ptr))}arity(){return e.get_arity(f,this.ptr)}domain(t){return(0,i.assert)(t<this.arity(),`Index out of bounds`),y(e.get_domain(f,this.ptr,t))}range(){return y(e.get_range(f,this.ptr))}kind(){return e.get_decl_kind(f,this.ptr)}params(){let t=e.get_decl_num_parameters(f,this.ptr),r=[];for(let a=0;a<t;a++){let t=g(e.get_decl_parameter_kind(f,this.ptr,a));switch(t){case n.Z3_parameter_kind.Z3_PARAMETER_INT:r.push(g(e.get_decl_int_parameter(f,this.ptr,a)));break;case n.Z3_parameter_kind.Z3_PARAMETER_DOUBLE:r.push(g(e.get_decl_double_parameter(f,this.ptr,a)));break;case n.Z3_parameter_kind.Z3_PARAMETER_RATIONAL:r.push(g(e.get_decl_rational_parameter(f,this.ptr,a)));break;case n.Z3_parameter_kind.Z3_PARAMETER_SYMBOL:r.push(v(g(e.get_decl_symbol_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_SORT:r.push(new B(g(e.get_decl_sort_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_AST:r.push(new H(g(e.get_decl_ast_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_FUNC_DECL:r.push(new V(g(e.get_decl_func_decl_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_INTERNAL:break;case n.Z3_parameter_kind.Z3_PARAMETER_ZSTRING:break;default:(0,i.assertExhaustive)(t)}}return r}call(...t){return(0,i.assert)(t.length===this.arity(),`Incorrect number of arguments to ${this}`),b(g(e.mk_app(f,this.ptr,t.map((e,t)=>this.domain(t).cast(e).ast))))}}class H extends Zn{get sort(){return y(e.get_sort(f,this.ast))}eq(t){return new U(g(e.mk_eq(f,this.ast,j(t).ast)))}neq(t){return new U(g(e.mk_distinct(f,[this,t].map(e=>j(e).ast))))}name(){return this.decl().name()}params(){return this.decl().params()}decl(){return(0,i.assert)(x(this),`Z3 application expected`),new V(g(e.get_app_decl(f,g(e.to_app(f,this.ast)))))}numArgs(){return(0,i.assert)(x(this),`Z3 applicaiton expected`),g(e.get_app_num_args(f,g(e.to_app(f,this.ast))))}arg(t){return(0,i.assert)(x(this),`Z3 applicaiton expected`),(0,i.assert)(t<this.numArgs(),`Invalid argument index - expected ${t} to be less than ${this.numArgs()}`),b(g(e.get_app_arg(f,g(e.to_app(f,this.ast)),t)))}children(){let e=this.numArgs();if(x(this)){let t=[];for(let n=0;n<e;n++)t.push(this.arg(n));return t}return[]}}class ar{constructor(e){this.ptr=e,this.ctx=$}}class or extends B{cast(e){return typeof e==`boolean`&&(e=M.val(e)),(0,i.assert)(C(e),`true, false or Z3 Boolean expression expected.`),(0,i.assert)(this.eqIdentity(e.sort),`Value cannot be converted into a Z3 Boolean value`),e}subsort(e){return p(e.ctx),e instanceof mr}}class U extends H{not(){return bt(this)}and(e){return xt(this,e)}or(e){return St(this,e)}xor(e){return yt(this,e)}implies(e){return gt(this,e)}iff(e){return _t(this,e)}}class sr{constructor(e){this.ptr=e,this.ctx=$}apply(t){return p(t),e.probe_apply(f,this.ptr,t.ptr)}}class cr{constructor(t=!0,n=!1,r=!1){this.ctx=$;let i=g(e.mk_goal(f,t,n,r));this.ptr=i,e.goal_inc_ref(f,i),c.register(this,()=>e.goal_dec_ref(f,i),this)}static fromPtr(t){let n=Object.create(cr.prototype);return n.ctx=$,n.ptr=t,e.goal_inc_ref(f,t),c.register(n,()=>e.goal_dec_ref(f,t),n),n}add(...t){for(let n of t){let t=T(n)?n:M.val(n);p(t),e.goal_assert(f,this.ptr,t.ast)}}size(){return e.goal_size(f,this.ptr)}get(t){(0,i.assert)(t>=0&&t<this.size(),`Index out of bounds`);let n=g(e.goal_formula(f,this.ptr,t));return new U(n)}depth(){return e.goal_depth(f,this.ptr)}inconsistent(){return e.goal_inconsistent(f,this.ptr)}precision(){return e.goal_precision(f,this.ptr)}reset(){e.goal_reset(f,this.ptr)}numExprs(){return e.goal_num_exprs(f,this.ptr)}isDecidedSat(){return e.goal_is_decided_sat(f,this.ptr)}isDecidedUnsat(){return e.goal_is_decided_unsat(f,this.ptr)}convertModel(t){p(t);let n=g(e.goal_convert_model(f,this.ptr,t.ptr));return new tr(n)}asExpr(){let e=this.size();if(e===0)return M.val(!0);if(e===1)return this.get(0);{let t=[];for(let n=0;n<e;n++)t.push(this.get(n));return xt(...t)}}toString(){return e.goal_to_string(f,this.ptr)}dimacs(t=!0){return e.goal_to_dimacs_string(f,this.ptr,t)}}class lr{constructor(t){this.ctx=$,this.ptr=t,e.apply_result_inc_ref(f,t),c.register(this,()=>e.apply_result_dec_ref(f,t),this)}length(){return e.apply_result_get_num_subgoals(f,this.ptr)}getSubgoal(t){(0,i.assert)(t>=0&&t<this.length(),`Index out of bounds`);let n=g(e.apply_result_get_subgoal(f,this.ptr,t));return cr.fromPtr(n)}toString(){return e.apply_result_to_string(f,this.ptr)}}let ur={get(e,t){if(typeof t==`string`){let n=parseInt(t,10);if(!isNaN(n)&&n>=0&&n<e.length())return e.getSubgoal(n)}return e[t]}};class W{constructor(t){this.ctx=$;let n;n=typeof t==`string`?g(e.mk_tactic(f,t)):t,this.ptr=n,e.tactic_inc_ref(f,n),c.register(this,()=>e.tactic_dec_ref(f,n),this)}async apply(t){let n;T(t)?(n=new cr,n.add(t)):n=t,p(n);let r=await e.tactic_apply(f,this.ptr,n.ptr),i=new lr(g(r));return new Proxy(i,ur)}solver(){let t=g(e.mk_solver_from_tactic(f,this.ptr));return new Qn(t)}help(){return e.tactic_get_help(f,this.ptr)}paramDescrs(){let t=g(e.tactic_get_param_descrs(f,this.ptr));return new fr(t)}usingParams(t){p(t);let n=g(e.tactic_using_params(f,this.ptr,t.ptr));return new W(n)}}class dr{constructor(t){this.ctx=$,this.ptr=t||e.mk_params(f),e.params_inc_ref(f,this.ptr),c.register(this,()=>e.params_dec_ref(f,this.ptr),this)}set(t,n){let r=_(t);typeof n==`boolean`?e.params_set_bool(f,this.ptr,r,n):typeof n==`number`?g(Number.isInteger(n)?e.params_set_uint(f,this.ptr,r,n):e.params_set_double(f,this.ptr,r,n)):typeof n==`string`&&g(e.params_set_symbol(f,this.ptr,r,_(n)))}validate(t){p(t),e.params_validate(f,this.ptr,t.ptr)}toString(){return e.params_to_string(f,this.ptr)}}class fr{constructor(t){this.ctx=$,this.ptr=t,e.param_descrs_inc_ref(f,this.ptr),c.register(this,()=>e.param_descrs_dec_ref(f,this.ptr),this)}size(){return e.param_descrs_size(f,this.ptr)}getName(t){let n=v(e.param_descrs_get_name(f,this.ptr,t));return typeof n==`string`?n:`${n}`}getKind(t){return e.param_descrs_get_kind(f,this.ptr,_(t))}getDocumentation(t){return e.param_descrs_get_documentation(f,this.ptr,_(t))}toString(){return e.param_descrs_to_string(f,this.ptr)}}class pr{constructor(t){this.ctx=$;let n;n=typeof t==`string`?g(e.mk_simplifier(f,t)):t,this.ptr=n,e.simplifier_inc_ref(f,n),c.register(this,()=>e.simplifier_dec_ref(f,n),this)}help(){return e.simplifier_get_help(f,this.ptr)}paramDescrs(){let t=g(e.simplifier_get_param_descrs(f,this.ptr));return new fr(t)}usingParams(t){p(t);let n=g(e.simplifier_using_params(f,this.ptr,t.ptr));return new pr(n)}andThen(t){p(t);let n=g(e.simplifier_and_then(f,this.ptr,t.ptr));return new pr(n)}}class mr extends B{cast(e){let t=D(this)?`IntSort`:`RealSort`;if(C(e)){let n=e.sort;if(E(e)){if(this.eqIdentity(n))return e;if(D(n)&&Oe(this))return jt(e);(0,i.assert)(!1,`Can't cast Real to IntSort without loss`)}else if(T(e))return D(this)?R(e,1,0):jt(R(e,1,0));(0,i.assert)(!1,`Can't cast expression to ${t}`)}else{if(typeof e!=`boolean`)return D(this)?((0,i.assert)(!s(e),`Can't cast fraction to IntSort`),N.val(e)):P.val(e);(0,i.assert)(!1,`Can't cast primitive to ${t}`)}}}function hr(t,...n){if(t instanceof q){if(n.length!==1)throw Error(`BitVec add only supports 2 arguments`);return new q(g(e.mk_bvadd(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof G),new G(g(e.mk_add(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function gr(t,...n){if(t instanceof q){if(n.length!==1)throw Error(`BitVec sub only supports 2 arguments`);return new q(g(e.mk_bvsub(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof G),new G(g(e.mk_sub(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function _r(t,...n){if(t instanceof q){if(n.length!==1)throw Error(`BitVec mul only supports 2 arguments`);return new q(g(e.mk_bvmul(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof G),new G(g(e.mk_mul(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function vr(t,n){return t instanceof q?new q(g(e.mk_bvsdiv(f,t.ast,t.sort.cast(n).ast))):((0,i.assert)(t instanceof G),new G(g(e.mk_div(f,t.ast,t.sort.cast(n).ast))))}function yr(t,n){return new q(g(e.mk_bvudiv(f,t.ast,t.sort.cast(n).ast)))}function br(t){return t instanceof q?new q(g(e.mk_bvneg(f,t.ast))):((0,i.assert)(t instanceof G),new G(g(e.mk_unary_minus(f,t.ast))))}function xr(t,n){return t instanceof q?new q(g(e.mk_bvsrem(f,t.ast,t.sort.cast(n).ast))):((0,i.assert)(t instanceof G),new G(g(e.mk_mod(f,t.ast,t.sort.cast(n).ast))))}class G extends H{add(e){return hr(this,e)}mul(e){return _r(this,e)}sub(e){return gr(this,e)}pow(t){return new G(g(e.mk_power(f,this.ast,this.sort.cast(t).ast)))}div(e){return vr(this,e)}mod(e){return xr(this,e)}neg(){return br(this)}le(e){return $t(this,e)}lt(e){return Zt(this,e)}gt(e){return Qt(this,e)}ge(e){return en(this,e)}}class Sr extends G{value(){return BigInt(this.asString())}asString(){return e.get_numeral_string(f,this.ast)}asBinary(){return e.get_numeral_binary_string(f,this.ast)}}class Cr extends G{value(){return{numerator:this.numerator().value(),denominator:this.denominator().value()}}numerator(){return new Sr(e.get_numerator(f,this.ast))}denominator(){return new Sr(e.get_denominator(f,this.ast))}asNumber(){let{numerator:e,denominator:t}=this.value(),n=e/t;return Number(n)+Number(e-n*t)/Number(t)}asDecimal(t=Number.parseInt(ee(`precision`)??a.toString())){return e.get_numeral_decimal_string(f,this.ast,t)}asString(){return e.get_numeral_string(f,this.ast)}}class K{constructor(t){this.ctx=$;let n;n=typeof t==`string`?g(e.rcf_mk_rational(f,t)):typeof t==`number`?g(e.rcf_mk_small_int(f,t)):t,this.ptr=n,c.register(this,()=>e.rcf_del(f,n),this)}add(t){return p(t),new K(g(e.rcf_add(f,this.ptr,t.ptr)))}sub(t){return p(t),new K(g(e.rcf_sub(f,this.ptr,t.ptr)))}mul(t){return p(t),new K(g(e.rcf_mul(f,this.ptr,t.ptr)))}div(t){return p(t),new K(g(e.rcf_div(f,this.ptr,t.ptr)))}neg(){return new K(g(e.rcf_neg(f,this.ptr)))}inv(){return new K(g(e.rcf_inv(f,this.ptr)))}power(t){return new K(g(e.rcf_power(f,this.ptr,t)))}lt(t){return p(t),g(e.rcf_lt(f,this.ptr,t.ptr))}gt(t){return p(t),g(e.rcf_gt(f,this.ptr,t.ptr))}le(t){return p(t),g(e.rcf_le(f,this.ptr,t.ptr))}ge(t){return p(t),g(e.rcf_ge(f,this.ptr,t.ptr))}eq(t){return p(t),g(e.rcf_eq(f,this.ptr,t.ptr))}neq(t){return p(t),g(e.rcf_neq(f,this.ptr,t.ptr))}isRational(){return g(e.rcf_is_rational(f,this.ptr))}isAlgebraic(){return g(e.rcf_is_algebraic(f,this.ptr))}isInfinitesimal(){return g(e.rcf_is_infinitesimal(f,this.ptr))}isTranscendental(){return g(e.rcf_is_transcendental(f,this.ptr))}toString(t=!1){return g(e.rcf_num_to_string(f,this.ptr,t,!1))}toDecimal(t){return g(e.rcf_num_to_decimal_string(f,this.ptr,t))}}class wr extends B{size(){return e.get_bv_sort_size(f,this.ptr)}subsort(e){return Ae(e)&&this.size()<e.size()}cast(e){return C(e)?(p(e),e):((0,i.assert)(!s(e),`Can't convert rational to BitVec`),F.val(e,this.size()))}}class q extends H{size(){return this.sort.size()}add(e){return hr(this,e)}mul(e){return _r(this,e)}sub(e){return gr(this,e)}sdiv(e){return vr(this,e)}udiv(e){return yr(this,e)}smod(e){return xr(this,e)}urem(t){return new q(g(e.mk_bvurem(f,this.ast,this.sort.cast(t).ast)))}srem(t){return new q(g(e.mk_bvsrem(f,this.ast,this.sort.cast(t).ast)))}neg(){return br(this)}or(t){return new q(g(e.mk_bvor(f,this.ast,this.sort.cast(t).ast)))}and(t){return new q(g(e.mk_bvand(f,this.ast,this.sort.cast(t).ast)))}nand(t){return new q(g(e.mk_bvnand(f,this.ast,this.sort.cast(t).ast)))}xor(t){return new q(g(e.mk_bvxor(f,this.ast,this.sort.cast(t).ast)))}xnor(t){return new q(g(e.mk_bvxnor(f,this.ast,this.sort.cast(t).ast)))}shr(t){return new q(g(e.mk_bvashr(f,this.ast,this.sort.cast(t).ast)))}lshr(t){return new q(g(e.mk_bvlshr(f,this.ast,this.sort.cast(t).ast)))}shl(t){return new q(g(e.mk_bvshl(f,this.ast,this.sort.cast(t).ast)))}rotateRight(t){return new q(g(e.mk_ext_rotate_right(f,this.ast,this.sort.cast(t).ast)))}rotateLeft(t){return new q(g(e.mk_ext_rotate_left(f,this.ast,this.sort.cast(t).ast)))}not(){return new q(g(e.mk_bvnot(f,this.ast)))}extract(e,t){return un(e,t,this)}signExt(t){return new q(g(e.mk_sign_ext(f,t,this.ast)))}zeroExt(t){return new q(g(e.mk_zero_ext(f,t,this.ast)))}repeat(t){return new q(g(e.mk_repeat(f,t,this.ast)))}sle(e){return cn(this,e)}ule(e){return rn(this,e)}slt(e){return on(this,e)}ult(e){return tn(this,e)}sge(e){return ln(this,e)}uge(e){return an(this,e)}sgt(e){return sn(this,e)}ugt(e){return nn(this,e)}redAnd(){return new q(g(e.mk_bvredand(f,this.ast)))}redOr(){return new q(g(e.mk_bvredor(f,this.ast)))}addNoOverflow(t,n){return new U(g(e.mk_bvadd_no_overflow(f,this.ast,this.sort.cast(t).ast,n)))}addNoUnderflow(t){return new U(g(e.mk_bvadd_no_underflow(f,this.ast,this.sort.cast(t).ast)))}subNoOverflow(t){return new U(g(e.mk_bvsub_no_overflow(f,this.ast,this.sort.cast(t).ast)))}subNoUnderflow(t,n){return new U(g(e.mk_bvsub_no_underflow(f,this.ast,this.sort.cast(t).ast,n)))}sdivNoOverflow(t){return new U(g(e.mk_bvsdiv_no_overflow(f,this.ast,this.sort.cast(t).ast)))}mulNoOverflow(t,n){return new U(g(e.mk_bvmul_no_overflow(f,this.ast,this.sort.cast(t).ast,n)))}mulNoUnderflow(t){return new U(g(e.mk_bvmul_no_underflow(f,this.ast,this.sort.cast(t).ast)))}negNoOverflow(){return new U(g(e.mk_bvneg_no_overflow(f,this.ast)))}}class Tr extends q{value(){return BigInt(this.asString())}asSignedValue(){let e=this.value(),t=BigInt(this.size());return e>=2n**(t-1n)&&(e-=2n**t),e<(-2n)**(t-1n)&&(e+=2n**t),e}asString(){return e.get_numeral_string(f,this.ast)}asBinaryString(){return e.get_numeral_binary_string(f,this.ast)}}class Er extends B{cast(e){if(Le(e))return p(e),e;throw Error(`Can't cast to FPRMSort`)}}class Dr extends H{}class Or extends B{ebits(){return e.fpa_get_ebits(f,this.ptr)}sbits(){return e.fpa_get_sbits(f,this.ptr)}cast(e){if(C(e))return p(e),e;if(typeof e==`number`)return I.val(e,this);throw Error(`Can't cast to FPSort`)}}class J extends H{add(t,n){let r=O(n)?n:I.val(n,this.sort);return new J(g(e.mk_fpa_add(f,t.ast,this.ast,r.ast)))}sub(t,n){let r=O(n)?n:I.val(n,this.sort);return new J(g(e.mk_fpa_sub(f,t.ast,this.ast,r.ast)))}mul(t,n){let r=O(n)?n:I.val(n,this.sort);return new J(g(e.mk_fpa_mul(f,t.ast,this.ast,r.ast)))}div(t,n){let r=O(n)?n:I.val(n,this.sort);return new J(g(e.mk_fpa_div(f,t.ast,this.ast,r.ast)))}neg(){return new J(g(e.mk_fpa_neg(f,this.ast)))}abs(){return new J(g(e.mk_fpa_abs(f,this.ast)))}sqrt(t){return new J(g(e.mk_fpa_sqrt(f,t.ast,this.ast)))}rem(t){let n=O(t)?t:I.val(t,this.sort);return new J(g(e.mk_fpa_rem(f,this.ast,n.ast)))}fma(t,n,r){let i=O(n)?n:I.val(n,this.sort),a=O(r)?r:I.val(r,this.sort);return new J(g(e.mk_fpa_fma(f,t.ast,this.ast,i.ast,a.ast)))}lt(t){let n=O(t)?t:I.val(t,this.sort);return new U(g(e.mk_fpa_lt(f,this.ast,n.ast)))}gt(t){let n=O(t)?t:I.val(t,this.sort);return new U(g(e.mk_fpa_gt(f,this.ast,n.ast)))}le(t){let n=O(t)?t:I.val(t,this.sort);return new U(g(e.mk_fpa_leq(f,this.ast,n.ast)))}ge(t){let n=O(t)?t:I.val(t,this.sort);return new U(g(e.mk_fpa_geq(f,this.ast,n.ast)))}isNaN(){return new U(g(e.mk_fpa_is_nan(f,this.ast)))}isInf(){return new U(g(e.mk_fpa_is_infinite(f,this.ast)))}isZero(){return new U(g(e.mk_fpa_is_zero(f,this.ast)))}isNormal(){return new U(g(e.mk_fpa_is_normal(f,this.ast)))}isSubnormal(){return new U(g(e.mk_fpa_is_subnormal(f,this.ast)))}isNegative(){return new U(g(e.mk_fpa_is_negative(f,this.ast)))}isPositive(){return new U(g(e.mk_fpa_is_positive(f,this.ast)))}toIEEEBV(){return new q(g(e.mk_fpa_to_ieee_bv(f,this.ast)))}toReal(){return new G(g(e.mk_fpa_to_real(f,this.ast)))}}class kr extends J{value(){return e.get_numeral_double(f,this.ast)}}class Ar extends B{isString(){return e.is_string_sort(f,this.ptr)}basis(){return y(g(e.get_seq_sort_basis(f,this.ptr)))}cast(e){if(k(e))return p(e),e;if(typeof e==`string`)return L.val(e);throw Error(`Can't cast to SeqSort`)}}class Y extends H{isString(){return e.is_string_sort(f,e.get_sort(f,this.ast))}asString(){if(!e.is_string(f,this.ast))throw Error(`Not a string value`);return e.get_string(f,this.ast)}concat(t){let n=k(t)?t:L.val(t);return new Y(g(e.mk_seq_concat(f,[this.ast,n.ast])))}length(){return new G(g(e.mk_seq_length(f,this.ast)))}at(t){let n=E(t)?t:N.val(t);return new Y(g(e.mk_seq_at(f,this.ast,n.ast)))}nth(t){let n=E(t)?t:N.val(t);return b(g(e.mk_seq_nth(f,this.ast,n.ast)))}extract(t,n){let r=E(t)?t:N.val(t),i=E(n)?n:N.val(n);return new Y(g(e.mk_seq_extract(f,this.ast,r.ast,i.ast)))}indexOf(t,n){let r=k(t)?t:L.val(t),i=n===void 0?N.val(0):E(n)?n:N.val(n);return new G(g(e.mk_seq_index(f,this.ast,r.ast,i.ast)))}lastIndexOf(t){let n=k(t)?t:L.val(t);return new G(g(e.mk_seq_last_index(f,this.ast,n.ast)))}contains(t){let n=k(t)?t:L.val(t);return new U(g(e.mk_seq_contains(f,this.ast,n.ast)))}prefixOf(t){let n=k(t)?t:L.val(t);return new U(g(e.mk_seq_prefix(f,this.ast,n.ast)))}suffixOf(t){let n=k(t)?t:L.val(t);return new U(g(e.mk_seq_suffix(f,this.ast,n.ast)))}replace(t,n){let r=k(t)?t:L.val(t),i=k(n)?n:L.val(n);return new Y(g(e.mk_seq_replace(f,this.ast,r.ast,i.ast)))}replaceAll(t,n){let r=k(t)?t:L.val(t),i=k(n)?n:L.val(n);return new Y(g(e.mk_seq_replace_all(f,this.ast,r.ast,i.ast)))}replaceRe(t,n){let r=k(n)?n:L.val(n);return new Y(g(e.mk_seq_replace_re(f,this.ast,t.ast,r.ast)))}replaceReAll(t,n){let r=k(n)?n:L.val(n);return new Y(g(e.mk_seq_replace_re_all(f,this.ast,t.ast,r.ast)))}toInt(){return new G(g(e.mk_str_to_int(f,this.ast)))}toCode(){return new G(g(e.mk_string_to_code(f,this.ast)))}lt(t){let n=k(t)?t:L.val(t);return new U(g(e.mk_str_lt(f,this.ast,n.ast)))}le(t){let n=k(t)?t:L.val(t);return new U(g(e.mk_str_le(f,this.ast,n.ast)))}map(t){return new Y(g(e.mk_seq_map(f,t.ast,this.ast)))}mapi(t,n){let r=E(n)?n:N.val(n);return new Y(g(e.mk_seq_mapi(f,t.ast,r.ast,this.ast)))}foldl(t,n){return b(g(e.mk_seq_foldl(f,t.ast,n.ast,this.ast)))}foldli(t,n,r){let i=E(n)?n:N.val(n);return b(g(e.mk_seq_foldli(f,t.ast,i.ast,r.ast,this.ast)))}}class jr extends B{basis(){return y(g(e.get_re_sort_basis(f,this.ptr)))}cast(e){if(Ve(e))return p(e),e;throw Error(`Can't cast to ReSort`)}}class X extends H{plus(){return new X(g(e.mk_re_plus(f,this.ast)))}star(){return new X(g(e.mk_re_star(f,this.ast)))}option(){return new X(g(e.mk_re_option(f,this.ast)))}complement(){return new X(g(e.mk_re_complement(f,this.ast)))}union(t){return new X(g(e.mk_re_union(f,[this.ast,t.ast])))}intersect(t){return new X(g(e.mk_re_intersect(f,[this.ast,t.ast])))}diff(t){return new X(g(e.mk_re_diff(f,this.ast,t.ast)))}concat(t){return new X(g(e.mk_re_concat(f,[this.ast,t.ast])))}loop(t,n=0){return new X(g(e.mk_re_loop(f,this.ast,t,n)))}power(t){return new X(g(e.mk_re_power(f,this.ast,t)))}}class Mr extends B{domain(){return y(g(e.get_array_sort_domain(f,this.ptr)))}domain_n(t){return y(g(e.get_array_sort_domain_n(f,this.ptr,t)))}range(){return y(g(e.get_array_sort_range(f,this.ptr)))}}class Nr extends H{domain(){return this.sort.domain()}domain_n(e){return this.sort.domain_n(e)}range(){return this.sort.range()}select(...e){return dn(this,...e)}store(...e){return fn(this,...e)}default(){return b(g(e.mk_array_default(f,this.ast)))}}class Pr extends H{elemSort(){return this.sort.domain()}union(...e){return mn(this,...e)}intersect(...e){return hn(this,...e)}diff(e){return gn(this,e)}add(e){return _n(this,e)}del(e){return vn(this,e)}complement(){return yn(this)}contains(e){return Sn(e,this)}subsetOf(e){return Cn(this,e)}}class Fr extends B{elemSort(){return y(g(e.get_finite_set_sort_basis(f,this.ptr)))}cast(e){return p(e),e}}class Z extends H{union(t){return new Z(g(e.mk_finite_set_union(f,this.ast,t.ast)))}intersect(t){return new Z(g(e.mk_finite_set_intersect(f,this.ast,t.ast)))}diff(t){return new Z(g(e.mk_finite_set_difference(f,this.ast,t.ast)))}contains(t){return new U(g(e.mk_finite_set_member(f,t.ast,this.ast)))}size(){return new H(g(e.mk_finite_set_size(f,this.ast)))}subsetOf(t){return new U(g(e.mk_finite_set_subset(f,this.ast,t.ast)))}map(t){return new Z(g(e.mk_finite_set_map(f,t.ast,this.ast)))}filter(t){return new Z(g(e.mk_finite_set_filter(f,t.ast,this.ast)))}}class Ir{constructor(e,t){this.constructors=[],this.ctx=e,this.name=t}declare(e,...t){return this.constructors.push([e,t]),this}create(){return Rr(this)[0]}createPolymorphic(e){return zr(e,this)}}class Lr extends B{numConstructors(){return e.get_datatype_sort_num_constructors(f,this.ptr)}constructorDecl(t){let n=e.get_datatype_sort_constructor(f,this.ptr,t);return new V(n)}recognizer(t){let n=e.get_datatype_sort_recognizer(f,this.ptr,t);return new V(n)}accessor(t,n){let r=e.get_datatype_sort_constructor_accessor(f,this.ptr,t,n);return new V(r)}cast(e){if(C(e))return(0,i.assert)(this.eqIdentity(e.sort),`Value cannot be converted to this datatype`),e;throw Error(`Cannot coerce value to datatype expression`)}subsort(e){return p(e.ctx),this.eqIdentity(e)}}function Rr(...t){if(t.length===0)throw Error(`At least one datatype must be provided`);let n=t[0].ctx;for(let e of t)if(e.ctx!==n)throw Error(`All datatypes must be from the same context`);let r=t.map(e=>e.name),i=[],a=[];try{for(let n of t){let r=[];for(let[i,o]of n.constructors){let n=[],s=[],c=[];for(let[e,r]of o)if(n.push(e),r instanceof Ir){let e=t.indexOf(r);if(e===-1)throw Error(`Referenced datatype "${r.name}" not found in datatypes being created`);s.push(null),c.push(e)}else s.push(r.ptr),c.push(0);let l=e.mk_constructor(f,e.mk_string_symbol(f,i),e.mk_string_symbol(f,`is_${i}`),n.map(t=>e.mk_string_symbol(f,t)),s,c);r.push(l),a.push(l)}let o=e.mk_constructor_list(f,r);i.push(o)}let n=r.map(t=>e.mk_string_symbol(f,t)),o=e.mk_datatypes(f,n,i),s=[];for(let e=0;e<o.length;e++){let t=new Lr(o[e]),n=t.numConstructors();for(let e=0;e<n;e++){let n=t.constructorDecl(e),r=t.recognizer(e),i=n.name().toString();t[i]=n.arity()===0?n.call():n,t[`is_${i}`]=r;for(let r=0;r<n.arity();r++){let n=t.accessor(e,r),i=n.name().toString();t[i]=n}}s.push(t)}return s}finally{for(let t of a)e.del_constructor(f,t);for(let t of i)e.del_constructor_list(f,t)}}function zr(t,n){if(!(n instanceof Ir))throw Error(`Datatype instance expected`);let r=[];try{for(let[t,i]of n.constructors){let a=[],o=[],s=[];for(let[e,t]of i)if(a.push(e),t instanceof Ir){if(t!==n)throw Error(`Referenced datatype "${t.name}" is not the polymorphic datatype being created; mutual recursion is not supported in createPolymorphicDatatype`);o.push(null),s.push(0)}else o.push(t.ptr),s.push(0);let c=e.mk_constructor(f,e.mk_string_symbol(f,t),e.mk_string_symbol(f,`is_${t}`),a.map(t=>e.mk_string_symbol(f,t)),o,s);r.push(c)}let i=e.mk_string_symbol(f,n.name),a=t.map(e=>e.ptr),o=e.mk_polymorphic_datatype(f,i,a,r),s=new Lr(o),c=s.numConstructors();for(let e=0;e<c;e++){let t=s.constructorDecl(e),n=s.recognizer(e),r=t.name().toString();s[r]=t.arity()===0?t.call():t,s[`is_${r}`]=n;for(let n=0;n<t.arity();n++){let t=s.accessor(e,n),r=t.name().toString();s[r]=t}}return s}finally{for(let t of r)e.del_constructor(f,t)}}class Br extends H{is_forall(){return e.is_quantifier_forall(f,this.ast)}is_exists(){return e.is_quantifier_exists(f,this.ast)}is_lambda(){return e.is_lambda(f,this.ast)}weight(){return e.get_quantifier_weight(f,this.ast)}num_patterns(){return e.get_quantifier_num_patterns(f,this.ast)}pattern(t){return new ar(g(e.get_quantifier_pattern_ast(f,this.ast,t)))}num_no_patterns(){return e.get_quantifier_num_no_patterns(f,this.ast)}no_pattern(t){return b(g(e.get_quantifier_no_pattern_ast(f,this.ast,t)))}body(){return b(g(e.get_quantifier_body(f,this.ast)))}num_vars(){return e.get_quantifier_num_bound(f,this.ast)}var_name(t){return v(e.get_quantifier_bound_name(f,this.ast,t))}var_sort(t){return y(g(e.get_quantifier_bound_sort(f,this.ast,t)))}children(){return[this.body()]}}class Vr extends Br{not(){return bt(this)}and(e){return xt(this,e)}or(e){return St(this,e)}xor(e){return yt(this,e)}implies(e){return gt(this,e)}iff(e){return _t(this,e)}}class Hr extends Br{domain(){return this.sort.domain()}domain_n(e){return this.sort.domain_n(e)}range(){return this.sort.range()}select(...e){return dn(this,...e)}store(...e){return fn(this,...e)}default(){return b(g(e.mk_array_default(f,this.ast)))}}class Q{constructor(t=e.mk_ast_vector(f)){this.ptr=t,this.ctx=$,e.ast_vector_inc_ref(f,t),c.register(this,()=>e.ast_vector_dec_ref(f,t),this)}length(){return e.ast_vector_size(f,this.ptr)}[Symbol.iterator](){return this.values()}*entries(){let e=this.length();for(let t=0;t<e;t++)yield[t,this.get(t)]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}get(t,n){let r=this.length();if(t<0&&(t+=r),t>=r)throw RangeError(`expected from index ${t} to be less than length ${r}`);if(n===void 0)return ne(g(e.ast_vector_get(f,this.ptr,t)));if(n<0&&(n+=r),n>=r)throw RangeError(`expected to index ${n} to be less than length ${r}`);let i=[];for(let r=t;r<n;r++)i.push(ne(g(e.ast_vector_get(f,this.ptr,r))));return i}set(t,n){if(p(n),t>=this.length())throw RangeError(`expected index ${t} to be less than length ${this.length()}`);g(e.ast_vector_set(f,this.ptr,t,n.ast))}push(t){p(t),g(e.ast_vector_push(f,this.ptr,t.ast))}resize(t){g(e.ast_vector_resize(f,this.ptr,t))}has(e){p(e);for(let t of this.values())if(t.eqIdentity(e))return!0;return!1}sexpr(){return g(e.ast_vector_to_string(f,this.ptr))}}class Ur{constructor(t=e.mk_ast_map(f)){this.ptr=t,this.ctx=$,e.ast_map_inc_ref(f,t),c.register(this,()=>e.ast_map_dec_ref(f,t),this)}[Symbol.iterator](){return this.entries()}get size(){return e.ast_map_size(f,this.ptr)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}keys(){return new Q(e.ast_map_keys(f,this.ptr))}*values(){for(let[e,t]of this.entries())yield t}get(t){return ne(g(e.ast_map_find(f,this.ptr,t.ast)))}set(t,n){g(e.ast_map_insert(f,this.ptr,t.ast,n.ast))}delete(t){g(e.ast_map_erase(f,this.ptr,t.ast))}clear(){g(e.ast_map_reset(f,this.ptr))}has(t){return g(e.ast_map_contains(f,this.ptr,t.ast))}sexpr(){return g(e.ast_map_to_string(f,this.ptr))}}function Wr(t,...n){p(t);let r=[],i=[];for(let[e,t]of n)p(e),p(t),r.push(e.ast),i.push(t.ast);return b(g(e.substitute(f,t.ast,r,i)))}function Gr(t,...n){p(t);let r=[];for(let e of n)p(e),r.push(e.ast);return b(g(e.substitute_vars(f,t.ast,r)))}function Kr(t,...n){p(t);let r=[],i=[];for(let[e,t]of n)p(e),p(t),r.push(e.ptr),i.push(t.ast);return b(g(e.substitute_funs(f,t.ast,r,i)))}function qr(t,n,r){return p(t),p(n),p(r),b(g(e.datatype_update_field(f,n.ptr,t.ast,r.ast)))}function Jr(t){let n=new Q(g(e.parse_smtlib2_string(f,t,[],[],[],[])));if(n.length()!==1)throw Error(`Expected exactly one AST. Instead got `+n.length()+`: `+n.sexpr());return n.get(0)}let $={ptr:f,name:l,Solver:Qn,Optimize:$n,Fixedpoint:er,Model:tr,Tactic:W,Goal:cr,Params:dr,Simplifier:pr,AstVector:Q,AstMap:Ur,interrupt:oe,setPrintMode:se,isModel:ce,isAst:le,isSort:ue,isFuncDecl:de,isFuncInterp:fe,isApp:x,isConst:S,isExpr:C,isVar:pe,isAppOf:w,isBool:T,isTrue:me,isFalse:he,isAnd:ge,isOr:_e,isImplies:ve,isNot:ye,isEq:be,isDistinct:xe,isQuantifier:Se,isArith:E,isArithSort:Ce,isInt:we,isIntVal:Te,isIntSort:D,isReal:Ee,isRealVal:De,isRealSort:Oe,isRCFNum:ke,isBitVecSort:Ae,isBitVec:je,isBitVecVal:Me,isFPRMSort:Ie,isFPRM:Le,isFPSort:Re,isFP:O,isFPVal:ze,isSeqSort:Be,isSeq:k,isStringSort:He,isString:Ue,isFiniteSetSort:We,isFiniteSet:Ge,isArraySort:Ne,isArray:Pe,isConstArray:Fe,isProbe:A,isTactic:Ke,isGoal:qe,isAstVector:Je,eqIdentity:Ye,getVarIndex:Xe,from:j,solve:Ze,Sort:$e,Function:et,RecFunc:tt,Bool:M,Int:N,Real:P,RCFNum:nt,BitVec:F,Float:I,FloatRM:rt,String:L,Seq:it,Re:at,Array:ot,Set:st,FiniteSet:ct,Datatype:lt,TypeVariable:ut,If:R,Distinct:dt,Const:ft,Consts:pt,FreshConst:mt,Var:ht,Implies:gt,Iff:_t,Eq:vt,Xor:yt,Not:bt,And:xt,Or:St,PbEq:Ct,PbGe:wt,PbLe:Tt,AtMost:Et,AtLeast:Dt,ForAll:Ot,Exists:kt,Lambda:At,ToReal:jt,ToInt:Mt,IsInt:Nt,Sqrt:Pt,Cbrt:Ft,BV2Int:It,Int2BV:Lt,Concat:Rt,Cond:zt,AndThen:Bt,OrElse:Vt,Repeat:Ht,TryFor:Ut,When:Wt,Skip:Gt,Fail:Kt,FailIf:qt,ParOr:Jt,ParAndThen:Yt,With:Xt,LT:Zt,GT:Qt,LE:$t,GE:en,ULT:tn,UGT:nn,ULE:rn,UGE:an,SLT:on,SGT:sn,SLE:cn,SGE:ln,Sum:hr,Sub:gr,Product:_r,Div:vr,BUDiv:yr,Neg:br,Mod:xr,Select:dn,Store:fn,Ext:pn,Extract:un,substitute:Wr,substituteVars:Gr,substituteFuns:Kr,updateField:qr,simplify:Qe,ast_from_string:Jr,SetUnion:mn,SetIntersect:hn,SetDifference:gn,SetAdd:_n,SetDel:vn,SetComplement:yn,EmptySet:bn,FullSet:xn,isMember:Sn,isSubset:Cn,InRe:wn,Union:Tn,Intersect:En,ReConcat:Dn,Plus:On,Star:kn,Option:An,Complement:jn,Diff:Mn,Range:Nn,Loop:Pn,Power:Fn,AllChar:In,Empty:Ln,Full:Rn,mkPartialOrder:zn,mkLinearOrder:Bn,mkPiecewiseLinearOrder:Vn,mkTreeOrder:Hn,mkTransitiveClosure:Un,mkChar:Wn,mkCharLe:Gn,mkCharToInt:Kn,mkCharToBV:qn,mkCharFromBV:Jn,mkCharIsDigit:Yn,polynomialSubresultants:Xn};return c.register($,()=>e.del_context(f)),$}return{enableTrace:l,disableTrace:u,getVersion:d,getVersionString:f,getFullVersion:p,openLog:m,appendLog:h,getParam:ee,setParam:g,resetParams:_,Context:v}}})),P=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),n(N(),e),n(tt(),e)})),nt=c((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.init=a;var r=P(),i=et();n(tt(),e),n(Qe(),e);async function a(e={}){let t=globalThis.initZ3;if(t===void 0)throw Error(`initZ3 was not imported correctly. Please consult documentation on how to load Z3 in browser`);let n=await(0,i.init)(t,e),a=(0,r.createApi)(n.Z3,n.em);return{...n,...a}}})),F=null,I=null,rt=null,L=null,it=new Set,at=new Set,ot=new Set;function st(e){let t=e?.Semaphore||e?.default?.Semaphore;if(!t||t.__washi_hooked)return;t.__washi_hooked=!0;let n=t.prototype.acquire;t.prototype.acquire=function(...e){return ot.add(this),n.apply(this,e)}}Promise.resolve().then(()=>(w(),oe)).then(st).catch(()=>{});function ct(e){for(let e of Array.from(ot))try{if(typeof e.isLocked==`function`&&e.isLocked()){if(typeof e.cancel==`function`)try{e.cancel()}catch{}if(typeof e.release==`function`)try{e.release()}catch{}}}catch{}}function lt(e){if(!e||e.__washi_async_call_hooked)return;e.__washi_async_call_hooked=!0;let t=e.async_call;typeof t==`function`&&(e.async_call=function(e,...n){let r,i=new Promise((e,t)=>{r=t,at.add(t)});i.catch(()=>{});try{let a=t.call(this,e,...n);return Promise.race([a,i]).finally(()=>{at.delete(r)})}catch(e){throw at.delete(r),R(e),e}})}function ut(e){return it.add(e),()=>{it.delete(e)}}function R(e){let t=e instanceof Error?e:Error(`[WaSHI] Z3 internal worker error: ${e?.message||(typeof e==`string`?e:`Worker failed to initialize or execute`)}`);for(let e of Array.from(at))try{e(t)}catch{}if(at.clear(),ct(t),I?.em?.PThread?.terminateAllThreads)try{I.em.PThread.terminateAllThreads()}catch{}pt();for(let e of Array.from(it))try{e(t)}catch{}}function dt(e){if(!e||!e.PThread||e.PThread.__washi_monitored)return;e.PThread.__washi_monitored=!0;let t=e=>{e&&(e.onerror=e=>{R(e)},typeof e.addEventListener==`function`&&e.addEventListener(`error`,e=>{R(e),typeof e.preventDefault==`function`&&e.preventDefault()}))};Array.isArray(e.PThread.unusedWorkers)&&e.PThread.unusedWorkers.forEach(t),Array.isArray(e.PThread.runningWorkers)&&e.PThread.runningWorkers.forEach(t);let n=e.PThread.loadWasmModuleToWorker;typeof n==`function`&&(e.PThread.loadWasmModuleToWorker=function(e){try{let t=n.call(this,e);return e.onerror=e=>{R(e)},t}catch(e){throw R(e),e}});let r=e.PThread.allocateUnusedWorker;typeof r==`function`&&(e.PThread.allocateUnusedWorker=function(){try{r.call(this);let e=this.unusedWorkers?.[this.unusedWorkers.length-1];e&&t(e)}catch(e){throw R(e),e}})}function ft(e){e.jsUrl!==void 0&&(rt=e.jsUrl),e.wasmUrl!==void 0&&(L=e.wasmUrl),pt()}function pt(){F=null,I=null}function mt(){if(typeof window>`u`)return;let e=window.location.hostname===`localhost`||window.location.hostname===`127.0.0.1`||window.location.hostname===`[::1]`;if(!window.isSecureContext&&!e)throw Error(`[WaSHI] Z3 solver requires a Secure Context (HTTPS or localhost). Current protocol: "${window.location.protocol}".`);let t=typeof SharedArrayBuffer<`u`,n=window.crossOriginIsolated===!0;if(!t||!n)throw Error(`[WaSHI] Z3 solver requires SharedArrayBuffer and crossOriginIsolated in browser environments.
2
+ Ensure your server sends the following delivery headers on the document response:
3
+ Cross-Origin-Opener-Policy: same-origin
4
+ Cross-Origin-Embedder-Policy: require-corp
5
+ (Note: Standard CORS headers alone are not sufficient, and setting 'useWorker: false' does not remove Z3's internal multithreading requirement.)`)}async function ht(e,t){try{let n=await fetch(e,{method:`GET`,headers:{Range:`bytes=0-3`}});if(!n.ok)throw Error(`server responded with HTTP status ${n.status} (${n.statusText||`Not Found`})`);if((n.headers.get(`content-type`)||``).includes(`text/html`))throw Error(`server responded with "text/html" instead of expected ${t} (check SPA fallback routing)`)}catch(n){throw Error(`[WaSHI] Failed to load Z3 asset (${t}) from "${e}": ${n.message||String(n)}. Deploy local assets with correct MIME types; no CDN fallback is attempted.`,{cause:n})}}function gt(e={}){if(e.z3JsUrl&&e.z3WasmUrl)return{jsUrl:e.z3JsUrl,wasmUrl:e.z3WasmUrl};if(rt&&L)return{jsUrl:e.z3JsUrl||rt,wasmUrl:e.z3WasmUrl||L};let t=ae();return{jsUrl:e.z3JsUrl||rt||t.jsUrl,wasmUrl:e.z3WasmUrl||L||t.wasmUrl}}async function _t(e){let t=globalThis;if(typeof t.initZ3==`function`)return t.initZ3;if(typeof document<`u`)await new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.crossOrigin=`anonymous`,r.onload=()=>t(),r.onerror=()=>n(Error(`[WaSHI] Failed to load Z3 runtime script from "${e}".`)),document.head.appendChild(r)});else if(typeof globalThis.importScripts==`function`)globalThis.importScripts(e);else throw Error(`[WaSHI] Cannot load z3-built.js in this environment: neither document nor importScripts is available.`);if(typeof t.initZ3!=`function`)throw Error(`[WaSHI] Script loaded from "${e}" did not define global initZ3.`);return t.initZ3}async function vt(e={}){if(F)return F;let t=(async()=>{mt();let{jsUrl:t,wasmUrl:n}=gt(e);await ht(t,`JavaScript (z3-built.js)`),await ht(n,`WebAssembly (z3-built.wasm)`),await _t(t);let r=t;if(typeof window<`u`&&new URL(t).origin!==window.location.origin){let e=new Blob([`importScripts(${JSON.stringify(t)});`],{type:`application/javascript`});r=URL.createObjectURL(e)}let i={locateFile:e=>e.endsWith(`.wasm`)?n:new URL(e,t).href,mainScriptUrlOrBlob:r};try{let e=await Promise.resolve().then(()=>d(nt(),1));try{st(await Promise.resolve().then(()=>(w(),oe)))}catch{}let t,n=await new Promise((n,r)=>{t=ut(r),e.init(i).then(n,r)}).finally(()=>t?.());return I=n,n&&n.em&&(dt(n.em),lt(n.em)),n}catch(e){throw pt(),Error(`[WaSHI] Failed to initialize Z3 in browser: ${e?.message||String(e)}`,{cause:e})}})();return t.catch(()=>{F===t&&pt()}),F=t,t}async function yt(e){let t=e||I||(F?await F.catch(()=>null):null);ct();for(let e of Array.from(at))try{e(Error(`[WaSHI] Z3 threads terminated`))}catch{}if(at.clear(),!t||!t.em){pt();return}try{let{killThreads:e}=await Promise.resolve().then(()=>d(nt(),1));typeof e==`function`?await e(t.em):t.em?.PThread?.terminateAllThreads&&t.em.PThread.terminateAllThreads()}catch{t.em?.PThread?.terminateAllThreads&&t.em.PThread.terminateAllThreads()}finally{pt()}}var bt=class{name=`z3`;capabilities={supportsMIP:!0,supportsQP:!1,supportsSMT:!0,supportsUnsatCore:!0};createContextTranslator(e){let t=new Map,n=new Map;function r(n){if(!t.has(n.name)){let r=n.type===`Continuous`||n.type===`CONTINUOUS`?e.Real.const(n.name):e.Int.const(n.name);t.set(n.name,r)}return t.get(n.name)}function i(t){if(!n.has(t.name)){let r=e.Bool.const(t.name);n.set(t.name,r)}return n.get(t.name)}function a(t){return typeof e.isInt==`function`&&e.isInt(t)?e.ToReal(t):t}function o(t,n){let r=typeof e.isInt==`function`&&e.isInt(t),i=typeof e.isInt==`function`&&e.isInt(n);return r&&i?t.add(n):a(t).add(a(n))}function s(t,n){return typeof e.isInt==`function`&&e.isInt(t)&&Number.isInteger(n)?t.mul(e.Int.val(n)):a(t).mul(e.Real.val(n))}function c(t,n){let r=typeof e.isInt==`function`&&e.isInt(t),i=typeof e.isInt==`function`&&e.isInt(n);return r&&i?t.mul(n):a(t).mul(a(n))}function l(t,n){return n&&Number.isInteger(t)?e.Int.val(t):e.Real.val(t)}function u(t,n,r){let i=typeof e.isInt==`function`&&e.isInt(t)&&Number.isInteger(r),o=i?t:a(t),s=i?e.Int.val(r):e.Real.val(r);return n===`<=`?o.le(s):n===`>=`?o.ge(s):o.eq(s)}function d(t){let n=null;if(t&&t.terms)for(let[e,i]of t.terms.entries()){let t=s(r(e),i);n=n===null?t:o(n,t)}let i=t&&typeof t.constant==`number`?t.constant:0;if(i!==0||n===null){let t=l(i,n===null||typeof e.isInt==`function`&&e.isInt(n));n=n===null?t:o(n,t)}return n}function f(t){let n=null;if(t.linearTerms)for(let[e,i]of t.linearTerms.entries()){let t=s(r(e),i);n=n===null?t:o(n,t)}if(t.quadTerms)for(let e of t.quadTerms.values()){let t=s(c(r(e.var1),r(e.var2)),e.coeff);n=n===null?t:o(n,t)}let i=t&&typeof t.constant==`number`?t.constant:0;if(i!==0||n===null){let t=l(i,n===null||typeof e.isInt==`function`&&e.isInt(n));n=n===null?t:o(n,t)}return n}function p(e){let t=e.lhs instanceof Object&&`quadTerms`in e.lhs?f(e.lhs):d(e.lhs),n=typeof e.rhs==`number`?e.rhs:0;return u(t,e.sense,n)}function m(t){if(t instanceof h||t&&typeof t==`object`&&`name`in t&&typeof t.id==`number`&&!(`op`in t)&&!(`lhs`in t))return i(t);if(t instanceof ee||t&&typeof t==`object`&&`lhs`in t&&`sense`in t)return p(t);if(t instanceof g||t&&typeof t==`object`&&`op`in t&&Array.isArray(t.children)){let n=t;switch(n.op){case`and`:return e.And(...n.children.map(m));case`or`:return e.Or(...n.children.map(m));case`not`:return e.Not(m(n.children[0]));case`implies`:return e.Implies(m(n.children[0]),m(n.children[1]));case`xor`:return e.Xor(m(n.children[0]),m(n.children[1]));default:throw Error(`Unsupported boolean operation: ${n.op}`)}}throw Error(`Unknown logic element: ${String(t)}`)}function _(e){if(!e)return 0;if(typeof e.asNumber==`function`)return e.asNumber();let t=e.toString();if(t.startsWith(`(/ `)){let e=t.slice(3,-1).trim().split(/\s+/);if(e.length===2)return Number(e[0])/Number(e[1])}return Number(t)}return{getVarAst:r,getBoolVarAst:i,compareAstWithNumber:u,translateLinExpr:d,translateQuadExpr:f,translateConstraint:p,translateBoolExpr:m,parseAstValue:_,varAstMap:t,boolVarAstMap:n}}async check(e,t={}){let{Context:n}=await vt(t),r=new n(`check_${Date.now()}_${Math.random().toString(36).substring(2,7)}`),i=new r.Solver,a=this.createContextTranslator(r),o=e.variables||e.vars||[],s=e.boolVars||[],c=e.constraints||[],l=e.logicalConstraints||[];for(let e of o){let t=a.getVarAst(e);e.lb!==-1/0&&i.add(a.compareAstWithNumber(t,`>=`,e.lb)),e.ub!==1/0&&i.add(a.compareAstWithNumber(t,`<=`,e.ub)),(e.type===`Binary`||e.type===`BINARY`)&&(i.add(a.compareAstWithNumber(t,`>=`,0)),i.add(a.compareAstWithNumber(t,`<=`,1)))}for(let e of c){let t=a.translateConstraint(e),n=r.Bool.const(e.name);i.addAndTrack(t,n)}for(let e=0;e<l.length;e++){let t=l[e],n=t&&t.name||`lc_${e+1}`,o=t&&t.expr||t,s=a.translateBoolExpr(o),c=r.Bool.const(n);i.addAndTrack(s,c)}let u,d;try{let e=i.check();d=await new Promise((t,n)=>{u=ut(n),e.then(t,n)})}finally{u?.()}let f=d.toString();if(f===`sat`){let e=i.model(),t={};for(let n of o){let r=a.getVarAst(n),i=e.eval(r);t[n.name]=a.parseAstValue(i)}for(let n of s){let r=a.getBoolVarAst(n),i=e.eval(r);t[n.name]=i.toString()===`true`}return{status:`Sat`,values:t}}if(f===`unsat`){let e=i.unsatCore(),t=[],n=typeof e.length==`function`?e.length():e.length;for(let r=0;r<n;r++)t.push(e.get(r).toString());return{status:`Unsat`,values:{},unsatCore:t}}return{status:`Unknown`,values:{}}}async solve(e,t,n={}){if(!(e.objective!==null&&e.objective!==void 0&&(`terms`in e.objective&&e.objective.terms.size>0||`linearTerms`in e.objective&&e.objective.linearTerms.size>0||`quadTerms`in e.objective&&e.objective.quadTerms.length>0||e.objective.offset&&e.objective.offset!==0))){let t=await this.check(e,n),r={};for(let[e,n]of Object.entries(t.values))r[e]=typeof n==`boolean`?+!!n:n;return{status:t.status===`Sat`?`Optimal`:t.status===`Unsat`?`Infeasible`:`Error`,objectiveValue:0,values:r}}let{Context:r}=await vt(n),i=new r(`opt_${Date.now()}_${Math.random().toString(36).substring(2,7)}`),a=new i.Optimize,o=this.createContextTranslator(i),s=e.variables||e.vars||[],c=e.boolVars||[],l=e.constraints||[],u=e.logicalConstraints||[];for(let e of s){let t=o.getVarAst(e);e.lb!==-1/0&&a.add(o.compareAstWithNumber(t,`>=`,e.lb)),e.ub!==1/0&&a.add(o.compareAstWithNumber(t,`<=`,e.ub)),(e.type===`Binary`||e.type===`BINARY`)&&(a.add(o.compareAstWithNumber(t,`>=`,0)),a.add(o.compareAstWithNumber(t,`<=`,1)))}for(let e of l){let t=o.translateConstraint(e);a.add(t)}for(let e of u){let t=e&&e.expr||e,n=o.translateBoolExpr(t);a.add(n)}let d=e.objective instanceof Object&&`quadTerms`in e.objective?o.translateQuadExpr(e.objective):o.translateLinExpr(e.objective);(e.sense||`MINIMIZE`).toUpperCase()===`MAXIMIZE`?a.maximize(d):a.minimize(d);let f,p;try{let e=a.check();p=await new Promise((t,n)=>{f=ut(n),e.then(t,n)})}finally{f?.()}let m=p.toString();if(m===`sat`){let e=a.model(),t={};for(let n of s){let r=o.getVarAst(n),i=e.eval(r);t[n.name]=o.parseAstValue(i)}for(let n of c){let r=o.getBoolVarAst(n),i=e.eval(r);t[n.name]=+(i.toString()===`true`)}return{status:`Optimal`,objectiveValue:o.parseAstValue(e.eval(d)),values:t}}return m===`unsat`?{status:`Infeasible`,objectiveValue:null,values:{}}:{status:`Error`,objectiveValue:null,values:{}}}};function xt(){y(`z3`,()=>new bt)}return xt(),e.Z3Solver=bt,e.killZ3Threads=yt,e.loadZ3=vt,e.notifyZ3WorkerError=R,e.registerZ3ErrorHandler=ut,e.registerZ3Solver=xt,e.resetZ3LoaderCache=pt,e.resolveZ3AssetUrls=gt,e.setZ3Assets=ft,e.unlockAllZ3Semaphores=ct,e.validateZ3BrowserEnvironment=mt,e})({});