@ohtaman/washi 0.2.0 → 0.4.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 (42) hide show
  1. package/README.ja.md +138 -122
  2. package/README.md +138 -122
  3. package/README.zh-CN.md +140 -124
  4. package/dist/browser/solvers/glpk.js +10 -2
  5. package/dist/browser/solvers/glpk.min.js +1 -1
  6. package/dist/browser/solvers/z3.js +34 -12
  7. package/dist/browser/solvers/z3.min.js +2 -2
  8. package/dist/browser/washi.js +562 -397
  9. package/dist/browser/washi.min.js +4 -4
  10. package/dist/lib/{constraint-XWdn0ID9.js → constraint-BRuB3ooC.js} +0 -3
  11. package/dist/lib/solvers/glpk.js +10 -2
  12. package/dist/lib/solvers/z3.js +35 -10
  13. package/dist/lib/washi.js +562 -412
  14. package/dist/types/index.d.ts +5 -7
  15. package/dist/types/index.d.ts.map +1 -1
  16. package/dist/types/modeler/constraint.d.ts +0 -3
  17. package/dist/types/modeler/constraint.d.ts.map +1 -1
  18. package/dist/types/modeler/expression.d.ts +23 -12
  19. package/dist/types/modeler/expression.d.ts.map +1 -1
  20. package/dist/types/modeler/index.d.ts +2 -4
  21. package/dist/types/modeler/index.d.ts.map +1 -1
  22. package/dist/types/modeler/model.d.ts +123 -40
  23. package/dist/types/modeler/model.d.ts.map +1 -1
  24. package/dist/types/modeler/parser.d.ts +9 -8
  25. package/dist/types/modeler/parser.d.ts.map +1 -1
  26. package/dist/types/modeler/quad-expr.d.ts +3 -1
  27. package/dist/types/modeler/quad-expr.d.ts.map +1 -1
  28. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -1
  29. package/dist/types/modeler/solvers/highs/solver.d.ts +1 -1
  30. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
  31. package/dist/types/modeler/solvers/types.d.ts +1 -1
  32. package/dist/types/modeler/solvers/z3/loader.d.ts +12 -0
  33. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -1
  34. package/dist/types/modeler/types.d.ts +8 -3
  35. package/dist/types/modeler/types.d.ts.map +1 -1
  36. package/dist/types/modeler/variable.d.ts +7 -6
  37. package/dist/types/modeler/variable.d.ts.map +1 -1
  38. package/package.json +11 -3
  39. package/dist/types/modeler/mip-compat.d.ts +0 -43
  40. package/dist/types/modeler/mip-compat.d.ts.map +0 -1
  41. package/dist/types/modeler/pulp-compat.d.ts +0 -67
  42. package/dist/types/modeler/pulp-compat.d.ts.map +0 -1
@@ -1,5 +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.
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}`}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}`}},te=Symbol.for(`washi.solverRegistry`),ne=globalThis;ne[te]||(ne[te]=new Map);var re=ne[te];function v(e,t){re.set(e.toLowerCase(),t)}var y=typeof document<`u`?document.currentScript?.src:null,ie=y?new URL(`.`,y).href:null;function ae(e){if(!ie)throw Error(`[WaSHI] Load the browser IIFE using an external script src, or use the browser ESM build.`);return new URL(e,ie).href}function oe(){return{jsUrl:ae(`z3-built.js`),wasmUrl:ae(`z3-built.wasm`)}}var se=l({E_ALREADY_LOCKED:()=>de,E_CANCELED:()=>b,E_TIMEOUT:()=>ue,Mutex:()=>C,Semaphore:()=>x,tryAcquire:()=>le,withTimeout:()=>ce});function ce(e,t,n=ue){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 le(e,t=de){return ce(e,0,t)}var ue,de,b,fe,x,S,C,pe,w=s((()=>{ue=Error(`timeout while waiting for mutex to become available`),de=Error(`mutex already locked`),b=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=b){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 te(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 te(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 ne(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 re(t){switch(g(e.get_ast_kind(f,t))){case n.Z3_ast_kind.Z3_SORT_AST:return v(t);case n.Z3_ast_kind.Z3_FUNC_DECL_AST:return new V(t);default:return y(t)}}function v(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 y(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 ie(e){let t=[];for(let n of e)Je(n)?t.push(...n.values()):t.push(n);return t}function ae(e){return A(e)?e:new sr(e)}function oe(e,t){(0,i.assert)(t.length>0,`At least one argument expected`);let n=ae(t[0]);for(let r=1;r<t.length;r++)n=new sr(g(e(f,n.ptr,ae(t[r]).ptr)));return n}function se(){g(e.interrupt(f))}function ce(t){e.set_ast_print_mode(f,t)}function le(e){let t=e instanceof tr;return t&&p(e),t}function ue(e){let t=e instanceof Zn;return t&&p(e),t}function de(e){let t=e instanceof B;return t&&p(e),t}function b(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 de(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 de(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 y(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),y(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),y(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),y(e.mk_fresh_const(t.ctx.ptr,n,t.ptr))}function ht(t,n){return p(n),y(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 oe(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 oe(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 y(g(e.mk_select(f,t.ast,r[0].ast)));let i=r.map(e=>e.ast);return y(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 y(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 y(g(e.mk_store_n(f,t.ast,i,r[r.length-1].ast)))}function pn(t,n){return y(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,ne(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){ie(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=ie(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?y(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;ie(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),y(g(e.solver_congruence_root(f,this.ptr,t.ast)))}congruenceNext(t){return p(t),y(g(e.solver_congruence_next(f,this.ptr,t.ast)))}congruenceExplain(t,n){return p(t),p(n),y(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?y(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,ne(t,n))}push(){e.optimize_push(f,this.ptr)}pop(){e.optimize_pop(f,this.ptr)}add(...t){ie(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 y(g(e.optimize_get_lower(f,this.ptr,t)))}getUpper(t){return y(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=ie(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,ne(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?y(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?y(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 y(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(b(t)||C(t)&&S(t)){let e=this.getInterp(t);return(0,i.assert)(e!==null),e}if(de(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()),b(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(!b(t)||t.arity()!==0)throw new r.Z3Error(`Expecting 0-ary function or constant expression`);if(!ue(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)(b(t)||S(t),`Declaration expected`),S(t)&&((0,i.assert)(C(t)),t=t.decl()),(0,i.assert)(b(t)),t.arity()===0){let n=g(e.model_get_const_interp(f,this.ptr,t.ptr));return n===null?null:y(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 v(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 y(g(e.func_entry_get_arg(f,this.ptr,t)))}value(){return y(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 y(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 te(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 te(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`),v(e.get_domain(f,this.ptr,t))}range(){return v(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(te(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}`),y(g(e.mk_app(f,this.ptr,t.map((e,t)=>this.domain(t).cast(e).ast))))}}class H extends Zn{get sort(){return v(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()}`),y(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=te(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 v(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 y(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 y(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 y(g(e.mk_seq_foldli(f,t.ast,i.ast,r.ast,this.ast)))}}class jr extends B{basis(){return v(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 v(g(e.get_array_sort_domain(f,this.ptr)))}domain_n(t){return v(g(e.get_array_sort_domain_n(f,this.ptr,t)))}range(){return v(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 y(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 v(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 y(g(e.get_quantifier_no_pattern_ast(f,this.ast,t)))}body(){return y(g(e.get_quantifier_body(f,this.ast)))}num_vars(){return e.get_quantifier_num_bound(f,this.ast)}var_name(t){return te(e.get_quantifier_bound_name(f,this.ast,t))}var_sort(t){return v(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 y(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 re(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(re(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 re(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 y(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 y(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 y(g(e.substitute_funs(f,t.ast,r,i)))}function qr(t,n,r){return p(t),p(n),p(r),y(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:se,setPrintMode:ce,isModel:le,isAst:ue,isSort:de,isFuncDecl:b,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:te}}})),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(),se)).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
2
  Ensure your server sends the following delivery headers on the document response:
3
3
  Cross-Origin-Opener-Policy: same-origin
4
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})({});
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=null;try{let t=await fetch(e,{method:`HEAD`});t.ok&&(n=t)}catch{}if(n||=await fetch(e,{method:`GET`,headers:{Range:`bytes=0-3`},cache:`no-store`}),!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=oe();return{jsUrl:e.z3JsUrl||rt||t.jsUrl,wasmUrl:e.z3WasmUrl||L||t.wasmUrl}}async function _t(e){let t=globalThis;if(t.global===void 0&&(t.global=t),typeof t.initZ3==`function`)return t.initZ3;if(typeof document<`u`)await new Promise((n,r)=>{let i=null,a=e=>{try{let t=typeof document<`u`&&document.baseURI?document.baseURI:void 0,n=new URL(e,t);return n.origin+n.pathname}catch{return e}},o=a(e),s=t=>{t.filename&&(a(t.filename)===o||t.filename===e||t.filename.endsWith(o)||o.endsWith(t.filename))&&(i=t.error||t.message)},c=typeof window<`u`&&typeof window.addEventListener==`function`;c&&window.addEventListener(`error`,s);let l=document.createElement(`script`);l.src=e,l.crossOrigin=`anonymous`,l.onload=()=>{if(c&&window.removeEventListener(`error`,s),typeof t.initZ3!=`function`&&i){let t=i instanceof Error?`${i.name}: ${i.message}`:typeof i==`string`?i:i?.message?`${i.name?i.name+`: `:``}${i.message}`:String(i);r(Error(`[WaSHI] Failed to evaluate Z3 runtime script from "${e}": ${t}`));return}n()},l.onerror=()=>{c&&window.removeEventListener(`error`,s),r(Error(`[WaSHI] Failed to load Z3 runtime script from "${e}".`))},document.head.appendChild(l)});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(),se)))}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(){v(`z3`,()=>new bt)}return xt(),e.Z3Solver=bt,e.ensureInitZ3Loaded=_t,e.killZ3Threads=yt,e.loadZ3=vt,e.notifyZ3WorkerError=R,e.probeAssetUrl=ht,e.registerZ3ErrorHandler=ut,e.registerZ3Solver=xt,e.resetZ3LoaderCache=pt,e.resolveZ3AssetUrls=gt,e.setZ3Assets=ft,e.unlockAllZ3Semaphores=ct,e.validateZ3BrowserEnvironment=mt,e})({});