@ohtaman/washi 0.5.0 → 0.6.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.
- package/README.ja.md +55 -20
- package/README.md +55 -20
- package/README.zh-CN.md +55 -20
- package/THIRD_PARTY_LICENSES.md +3 -4
- package/dist/browser/_washi-node-only-BvRk9kiK.js +0 -0
- package/dist/browser/browser-runtime-TLCY0hkc.js +1793 -0
- package/dist/browser/highs-worker.js +1 -1
- package/dist/browser/highs.wasm +0 -0
- package/dist/browser/highs.wasm.LICENSE +1 -2
- package/dist/browser/loader-DewlSho8.js +643 -0
- package/dist/browser/solvers/glpk.js +1 -1
- package/dist/browser/solvers/glpk.min.js +1 -1
- package/dist/browser/solvers/z3.js +7 -1
- package/dist/browser/solvers/z3.min.js +1 -1
- package/dist/browser/washi.js +1096 -444
- package/dist/browser/washi.min.js +3 -4
- package/dist/lib/_washi-node-only-BvRk9kiK.js +0 -0
- package/dist/lib/highs-browser-runtime.js +2120 -4124
- package/dist/lib/highs-node-runtime.js +24 -1
- package/dist/lib/highs-runtime.js +2 -0
- package/dist/lib/highs-worker.js +1 -1
- package/dist/lib/highs.wasm +0 -0
- package/dist/lib/highs.wasm.LICENSE +1 -2
- package/dist/lib/loader-BZUQNvh4.js +649 -0
- package/dist/lib/{registry-BEfvpZW3.js → registry-C20sxTwm.js} +54 -41
- package/dist/lib/solvers/glpk.js +2 -2
- package/dist/lib/solvers/z3.js +1 -1
- package/dist/lib/washi.js +973 -305
- package/dist/types/decomposition/benders.d.ts +32 -0
- package/dist/types/decomposition/benders.d.ts.map +1 -0
- package/dist/types/decomposition/column-generation.d.ts +34 -0
- package/dist/types/decomposition/column-generation.d.ts.map +1 -0
- package/dist/types/decomposition/index.d.ts +4 -0
- package/dist/types/decomposition/index.d.ts.map +1 -0
- package/dist/types/decomposition/types.d.ts +230 -0
- package/dist/types/decomposition/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
- package/dist/types/modeler/constraint.d.ts +11 -0
- package/dist/types/modeler/constraint.d.ts.map +1 -1
- package/dist/types/modeler/expression.d.ts +10 -0
- package/dist/types/modeler/expression.d.ts.map +1 -1
- package/dist/types/modeler/index.d.ts +2 -1
- package/dist/types/modeler/index.d.ts.map +1 -1
- package/dist/types/modeler/linearizer.d.ts +15 -0
- package/dist/types/modeler/linearizer.d.ts.map +1 -0
- package/dist/types/modeler/lp-writer.d.ts +3 -1
- package/dist/types/modeler/lp-writer.d.ts.map +1 -1
- package/dist/types/modeler/model.d.ts +147 -2
- package/dist/types/modeler/model.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -1
- package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/driver.d.ts +232 -0
- package/dist/types/modeler/solvers/highs/driver.d.ts.map +1 -0
- package/dist/types/modeler/solvers/highs/index.d.ts +1 -0
- package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/loader.d.ts +4 -4
- package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -1
- package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -1
- package/dist/types/modeler/solvers/highs/solver.d.ts +1 -1
- package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
- package/dist/types/modeler/solvers/types.d.ts +2 -0
- package/dist/types/modeler/solvers/types.d.ts.map +1 -1
- package/dist/types/modeler/types.d.ts +27 -0
- package/dist/types/modeler/types.d.ts.map +1 -1
- package/docs/examples/index.md +4 -0
- package/docs/examples/traveling-salesperson.md +173 -0
- package/docs/examples/vehicle-routing.md +206 -0
- package/docs/getting-started/ai-agents.md +8 -4
- package/docs/guide/constraints.md +1 -1
- package/docs/guide/decomposition.md +399 -0
- package/docs/guide/unsat-core.md +10 -3
- package/docs/ja/getting-started/ai-agents.md +8 -4
- package/docs/solvers/custom-solver.md +1 -1
- package/docs/solvers/highs.md +25 -3
- package/docs/solvers/index.md +3 -3
- package/docs/zh/getting-started/ai-agents.md +8 -4
- package/llms-full.txt +831 -15
- package/llms.txt +9 -5
- package/package.json +17 -14
- package/skills/washi/SKILL.md +8 -8
- package/dist/browser/browser-runtime-D13gHOT5.js +0 -4189
- package/dist/browser/loader-CtaDHef_.js +0 -273
- package/dist/lib/loader-DmNC_UNk.js +0 -279
|
@@ -1,4 +1,4 @@
|
|
|
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 e{kind=`constraint`;id;_lhs;_sense;_rhs;_name;hasExplicitName;ownerModel=null;slack=null;dual=null;constructor(e,t,n,r){this.id=++p,this._lhs=e,this._sense=t,this._rhs=n;let i=typeof r==`string`?r.trim():void 0;i&&i.length>0?(this._name=i,this.hasExplicitName=!0):(this._name=`c_${this.id}`,this.hasExplicitName=!1)}get lhs(){return this._lhs}set lhs(e){this._lhs!==e&&(this._lhs=e,this.ownerModel?.notifyMutation?.())}get sense(){return this._sense}set sense(e){this._sense!==e&&(this._sense=e,this.ownerModel?.notifyMutation?.())}get rhs(){return this._rhs}set rhs(e){Object.is(this._rhs,e)||(this._rhs=e,this.ownerModel?.notifyMutation?.())}get name(){return this._name}set name(e){this._name!==e&&(this._name=e,this.ownerModel?.notifyMutation?.()),this.hasExplicitName=!0}_assignModelName(e,t){this._name=e,this.hasExplicitName=t}and(e){return new v(`and`,[this,e])}or(e){return new v(`or`,[this,e])}implies(e){return new v(`implies`,[this,e])}xor(e){return new v(`xor`,[this,e])}not(){return new v(`not`,[this])}add(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}sub(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}mul(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}div(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}neg(){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}le(e,t){throw Error(`Cannot compare a Constraint in (<=): expected a number, Var, or LinExpr.`)}ge(e,t){throw Error(`Cannot compare a Constraint in (>=): expected a number, Var, or LinExpr.`)}eq(e,t){throw Error(`Cannot compare a Constraint in (==): expected a number, Var, or LinExpr.`)}get value(){throw Error(`Cannot read numeric value of a Constraint: expected a Var, LinExpr, or QuadExpr.`)}get constant(){throw Error(`Cannot read numeric constant of a Constraint: expected a LinExpr or QuadExpr.`)}clone(){return new e(this._lhs.clone(),this._sense,this._rhs,this.hasExplicitName?this._name:void 0)}toString(){let e=this.sense===`==`?`=`:this.sense;return`${this.name}: ${this.lhs.toString()} ${e} ${this.rhs}`}},h=0;function g(e,t){if(e instanceof _||e instanceof m)return e;throw typeof e==`object`&&e&&(`terms`in e||`quadTerms`in e)?Error(`Cannot use an arithmetic expression without a comparison operator (<=, >=, ==) in logical operator "${t}". Use a comparison constraint such as expr\`\${x} <= 10\` or a BoolVar/BoolExpr.`):Error(`Invalid operand passed to logical operator "${t}": expected a BoolVar, BoolExpr, or Constraint.`)}var _=class{and(e){return new v(`and`,[this,g(e,`and`)])}or(e){return new v(`or`,[this,g(e,`or`)])}implies(e){return new v(`implies`,[this,g(e,`implies`)])}xor(e){return new v(`xor`,[this,g(e,`xor`)])}not(){return new v(`not`,[this])}},ee=class extends _{id;name;value=null;constructor(e){super(),this.id=++h,this.name=e||`p_${this.id}`}toString(){return this.name}},v=class extends _{op;children;constructor(e,t){super(),this.op=e,this.children=t.map(t=>g(t,e))}toString(){return this.op===`not`?`not(${this.children[0].toString()})`:`(${this.children.map(e=>e.toString()).join(` ${this.op} `)})`}};function te(e){return typeof e==`object`&&!!e&&typeof e.lpString==`string`&&e.nameToVar instanceof Map&&e.nameToConstraint instanceof Map}var ne=Symbol.for(`washi.solverRegistry`),y=globalThis;y[ne]||(y[ne]=new Map);var b=y[ne];function re(e,t){b.set(e.toLowerCase(),t)}var ie=typeof document<`u`?document.currentScript?.src:null,ae=ie?new URL(`.`,ie).href:null;function oe(e){if(!ae)throw Error(`[WaSHI] Load the browser IIFE using an external script src, or use the browser ESM build.`);return new URL(e,ae).href}function se(){return{jsUrl:oe(`z3-built.js`),wasmUrl:oe(`z3-built.wasm`)}}var ce=l({__addDisposableResource:()=>je,__assign:()=>Fe,__asyncDelegator:()=>T,__asyncGenerator:()=>Ce,__asyncValues:()=>we,__await:()=>Se,__awaiter:()=>me,__classPrivateFieldGet:()=>Oe,__classPrivateFieldIn:()=>Ae,__classPrivateFieldSet:()=>ke,__createBinding:()=>Ie,__decorate:()=>de,__disposeResources:()=>Me,__esDecorate:()=>x,__exportStar:()=>ge,__extends:()=>le,__generator:()=>he,__importDefault:()=>De,__importStar:()=>Ee,__makeTemplateObject:()=>Te,__metadata:()=>w,__param:()=>fe,__propKey:()=>C,__read:()=>ve,__rest:()=>ue,__rewriteRelativeImportExtension:()=>Ne,__runInitializers:()=>S,__setFunctionName:()=>pe,__spread:()=>ye,__spreadArray:()=>xe,__spreadArrays:()=>be,__values:()=>_e,default:()=>Be});function le(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);Pe(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function ue(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 de(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 fe(e,t){return function(n,r){t(n,r,e)}}function x(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 S(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 C(e){return typeof e==`symbol`?e:`${e}`}function pe(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,"name",{configurable:!0,value:n?`${n} ${t}`:t})}function w(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function me(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 he(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 ge(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Ie(t,e,n)}function _e(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 ve(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 ye(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ve(arguments[t]));return e}function be(){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 xe(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 Se(e){return this instanceof Se?(this.v=e,this):new Se(e)}function Ce(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 Se?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 T(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:Se(e[r](t)),done:!1}:i?i(t):t}:i}}function we(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof _e==`function`?_e(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 Te(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Ee(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=Re(e),r=0;r<n.length;r++)n[r]!=="default"&&Ie(t,e,n[r]);return Le(t,e),t}function De(e){return e&&e.__esModule?e:{default:e}}function Oe(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 ke(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 Ae(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 je(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 Me(e){function t(t){e.error=e.hasError?new ze(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 Ne(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 Pe,Fe,Ie,Le,Re,ze,Be,E=s((()=>{Pe=function(e,t){return Pe=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])},Pe(e,t)},Fe=function(){return Fe=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},Fe.apply(this,arguments)},Ie=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]}),Le=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},Re=function(e){return Re=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},Re(e)},ze=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r},Be={__extends:le,__assign:Fe,__rest:ue,__decorate:de,__param:fe,__esDecorate:x,__runInitializers:S,__propKey:C,__setFunctionName:pe,__metadata:w,__awaiter:me,__generator:he,__createBinding:Ie,__exportStar:ge,__values:_e,__read:ve,__spread:ye,__spreadArrays:be,__spreadArray:xe,__await:Se,__asyncGenerator:Ce,__asyncDelegator:T,__asyncValues:we,__makeTemplateObject:Te,__importStar:Ee,__importDefault:De,__classPrivateFieldGet:Oe,__classPrivateFieldSet:ke,__classPrivateFieldIn:Ae,__addDisposableResource:je,__disposeResources:Me,__rewriteRelativeImportExtension:Ne}})),Ve=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`)})),He=c((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(E(),f(ce)),n=Ve();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}()})),D=c((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(E(),f(ce)),n=He();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}()})),Ue=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.withTimeout=void 0;var t=(E(),f(ce)),n=Ve();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})),We=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryAcquire=void 0;var t=Ve(),n=Ue();function r(e,r){return r===void 0&&(r=t.E_ALREADY_LOCKED),(0,n.withTimeout)(e,0,r)}e.tryAcquire=r})),Ge=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryAcquire=e.withTimeout=e.Semaphore=e.Mutex=void 0;var t=(E(),f(ce)),n=D();Object.defineProperty(e,"Mutex",{enumerable:!0,get:function(){return n.default}});var r=He();Object.defineProperty(e,"Semaphore",{enumerable:!0,get:function(){return r.default}});var i=Ue();Object.defineProperty(e,"withTimeout",{enumerable:!0,get:function(){return i.withTimeout}});var a=We();Object.defineProperty(e,"tryAcquire",{enumerable:!0,get:function(){return a.tryAcquire}}),(0,t.__exportStar)(Ve(),e)})),Ke=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={}))})),qe=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}}}})),O=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(Ke(),e),n(qe(),e)})),k=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{}})),Je=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assertExhaustive=n,e.assert=r,e.allSatisfy=i;var t=k();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}})),Ye=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createApi=c;var t=Ge(),n=O(),r=k(),i=Je(),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 B(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 sr(t);case n.Z3_sort_kind.Z3_INT_SORT:case n.Z3_sort_kind.Z3_REAL_SORT:return new hr(t);case n.Z3_sort_kind.Z3_BV_SORT:return new Tr(t);case n.Z3_sort_kind.Z3_FLOATING_POINT_SORT:return new kr(t);case n.Z3_sort_kind.Z3_ROUNDING_MODE_SORT:return new Dr(t);case n.Z3_sort_kind.Z3_SEQ_SORT:return new jr(t);case n.Z3_sort_kind.Z3_RE_SORT:return new Mr(t);case n.Z3_sort_kind.Z3_ARRAY_SORT:return new Nr(t);default:return e.is_finite_set_sort(f,t)?new Fr(t):new z(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 H(t);case n.Z3_sort_kind.Z3_INT_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Cr(t):new W(t);case n.Z3_sort_kind.Z3_REAL_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new wr(t):new W(t);case n.Z3_sort_kind.Z3_BV_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Er(t):new K(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 Ar(t):new q(t);case n.Z3_sort_kind.Z3_ROUNDING_MODE_SORT:return new Or(t);case n.Z3_sort_kind.Z3_SEQ_SORT:return new J(t);case n.Z3_sort_kind.Z3_RE_SORT:return new Y(t);case n.Z3_sort_kind.Z3_ARRAY_SORT:return new Pr(t);default:return e.is_finite_set_sort(f,e.get_sort(f,t))?new Z(t):new V(t)}}function re(e){let t=[];for(let n of e)Ye(n)?t.push(...n.values()):t.push(n);return t}function ie(e){return O(e)?e:new cr(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 cr(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 nr;return t&&p(e),t}function le(e){let t=e instanceof Qn;return t&&p(e),t}function ue(e){let t=e instanceof z;return t&&p(e),t}function de(e){let t=e instanceof B;return t&&p(e),t}function fe(e){let t=e instanceof ar;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 V;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 me(e){let t=e instanceof V&&e.sort.kind()===n.Z3_sort_kind.Z3_BOOL_SORT;return t&&p(e),t}function he(e){return w(e,n.Z3_decl_kind.Z3_OP_TRUE)}function ge(e){return w(e,n.Z3_decl_kind.Z3_OP_FALSE)}function _e(e){return w(e,n.Z3_decl_kind.Z3_OP_AND)}function ve(e){return w(e,n.Z3_decl_kind.Z3_OP_OR)}function ye(e){return w(e,n.Z3_decl_kind.Z3_OP_IMPLIES)}function be(e){return w(e,n.Z3_decl_kind.Z3_OP_NOT)}function xe(e){return w(e,n.Z3_decl_kind.Z3_OP_EQ)}function Se(e){return w(e,n.Z3_decl_kind.Z3_OP_DISTINCT)}function Ce(e){let t=e instanceof Br;return t&&p(e),t}function T(e){let t=e instanceof W;return t&&p(e),t}function we(e){let t=e instanceof hr;return t&&p(e),t}function Te(e){return T(e)&&De(e.sort)}function Ee(e){let t=e instanceof Cr;return t&&p(e),t}function De(e){return ue(e)&&e.kind()===n.Z3_sort_kind.Z3_INT_SORT}function Oe(e){return T(e)&&Ae(e.sort)}function ke(e){let t=e instanceof wr;return t&&p(e),t}function Ae(e){return ue(e)&&e.kind()===n.Z3_sort_kind.Z3_REAL_SORT}function je(e){let t=e instanceof G;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 K;return t&&p(e),t}function Pe(e){let t=e instanceof Er;return t&&p(e),t}function Fe(e){let t=e instanceof Nr;return t&&p(e),t}function Ie(e){let t=e instanceof Pr;return t&&p(e),t}function Le(e){return w(e,n.Z3_decl_kind.Z3_OP_CONST_ARRAY)}function Re(e){let t=e instanceof Dr;return t&&p(e),t}function ze(e){let t=e instanceof Or;return t&&p(e),t}function Be(e){let t=e instanceof kr;return t&&p(e),t}function E(e){let t=e instanceof q;return t&&p(e),t}function Ve(e){let t=e instanceof Ar;return t&&p(e),t}function He(e){let t=e instanceof jr;return t&&p(e),t}function D(e){let t=e instanceof J;return t&&p(e),t}function Ue(e){let t=e instanceof Y;return t&&p(e),t}function We(e){return He(e)&&e.isString()}function Ge(e){return D(e)&&e.isString()}function Ke(e){let t=e instanceof Fr;return t&&p(e),t}function qe(e){let t=e instanceof Z;return t&&p(e),t}function O(e){let t=e instanceof cr;return t&&p(e),t}function k(e){let t=e instanceof U;return t&&p(e),t}function Je(e){let t=e instanceof lr;return t&&p(e),t}function Ye(e){let t=e instanceof Q;return t&&p(e),t}function Xe(e,t){return e.eqIdentity(t)}function Ze(t){return(0,i.assert)(pe(t),`Z3 bound variable expected`),e.get_index_value(f,t.ast)}function A(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 Qe(...e){let t=new $.Solver;t.add(...e);let n=await t.check();return n===`sat`?t.model():n}async function $e(t){return b(g(await e.simplify(f,t.ast)))}let et={declare:t=>new z(e.mk_uninterpreted_sort(f,_(t)))},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 B(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 B(e.mk_fresh_func_decl(f,`f`,i,r.ptr))}},j={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 B(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 sr(e.mk_bool_sort(f)),const:t=>new H(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 H(e.mk_fresh_const(f,t,M.sort().ptr)),val:t=>t?new H(e.mk_true(f)):new H(e.mk_false(f))},N={sort:()=>new hr(e.mk_int_sort(f)),const:t=>new W(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 W(e.mk_fresh_const(f,t,N.sort().ptr)),val:t=>((0,i.assert)(typeof t==`bigint`||typeof t==`string`||Number.isSafeInteger(t)),new Cr(g(e.mk_numeral(f,t.toString(),N.sort().ptr))))},P={sort:()=>new hr(e.mk_real_sort(f)),const:t=>new W(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 W(e.mk_fresh_const(f,t,P.sort().ptr)),val:t=>(s(t)&&(t=`${t.numerator}/${t.denominator}`),new wr(e.mk_numeral(f,t.toString(),P.sort().ptr)))},nt=Object.assign(e=>new G(e),{pi:()=>new G(g(e.rcf_mk_pi(f))),e:()=>new G(g(e.rcf_mk_e(f))),infinitesimal:()=>new G(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 G(a[e]));return o}}),rt={sort(t){return(0,i.assert)(Number.isSafeInteger(t),`number of bits must be an integer`),new Tr(e.mk_bv_sort(f,t))},const(t,n){return new K(g(e.mk_const(f,_(t),Me(n)?n.ptr:rt.sort(n).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>rt.const(e,t))},val(t,n){return t===!0?rt.val(1,n):t===!1?rt.val(0,n):new Er(g(e.mk_numeral(f,t.toString(),Me(n)?n.ptr:rt.sort(n).ptr)))}},F={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 kr(e.mk_fpa_sort(f,t,n))},sort16(){return new kr(e.mk_fpa_sort_16(f))},sort32(){return new kr(e.mk_fpa_sort_32(f))},sort64(){return new kr(e.mk_fpa_sort_64(f))},sort128(){return new kr(e.mk_fpa_sort_128(f))},const(t,n){return new q(g(e.mk_const(f,_(t),n.ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>F.const(e,t))},val(t,n){return new Ar(g(e.mk_fpa_numeral_double(f,t,n.ptr)))},NaN(t){return new Ar(g(e.mk_fpa_nan(f,t.ptr)))},inf(t,n=!1){return new Ar(g(e.mk_fpa_inf(f,t.ptr,n)))},zero(t,n=!1){return new Ar(g(e.mk_fpa_zero(f,t.ptr,n)))}},it={sort(){return new Dr(e.mk_fpa_rounding_mode_sort(f))},RNE(){return new Or(g(e.mk_fpa_rne(f)))},RNA(){return new Or(g(e.mk_fpa_rna(f)))},RTP(){return new Or(g(e.mk_fpa_rtp(f)))},RTN(){return new Or(g(e.mk_fpa_rtn(f)))},RTZ(){return new Or(g(e.mk_fpa_rtz(f)))}},I={sort(){return new jr(e.mk_string_sort(f))},const(t){return new J(g(e.mk_const(f,_(t),I.sort().ptr)))},consts(e){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>I.const(e))},val(t){return new J(g(e.mk_string(f,t)))},fromCode(t){let n=T(t)?t:N.val(t);return new J(g(e.mk_string_from_code(f,n.ast)))},fromInt(t){let n=T(t)?t:N.val(t);return new J(g(e.mk_int_to_str(f,n.ast)))}},at={sort(t){return new jr(e.mk_seq_sort(f,t.ptr))},empty(t){return new J(g(e.mk_seq_empty(f,at.sort(t).ptr)))},unit(t){return new J(g(e.mk_seq_unit(f,t.ast)))}},ot={sort(t){return new Mr(e.mk_re_sort(f,t.ptr))},toRe(t){let n=D(t)?t:I.val(t);return new Y(g(e.mk_seq_to_re(f,n.ast)))}},st={sort(...t){let n=t.length-1,r=t[n],i=t[0];if(n===1)return new Nr(e.mk_array_sort(f,i.ptr,r.ptr));let a=t.slice(0,n);return new Nr(e.mk_array_sort_n(f,a.map(e=>e.ptr),r.ptr))},const(t,...n){return new Pr(g(e.mk_const(f,_(t),st.sort(...n).ptr)))},consts(e,...t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>st.const(e,...t))},K(t,n){return new Pr(g(e.mk_const_array(f,t.ptr,n.ptr)))},fromFunc(t){return new Pr(g(e.mk_as_array(f,t.ptr)))}},ct={sort(e){return st.sort(e,M.sort())},const(t,n){return new X(g(e.mk_const(f,_(t),st.sort(n,M.sort()).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>ct.const(e,t))},empty(e){return xn(e)},val(e,t){var n=xn(t);for(let t of e)n=vn(n,t);return n}},L={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),L.sort(n).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>L.const(e,t))},empty(t){return new Z(g(e.mk_finite_set_empty(f,L.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 z(g(e.mk_type_variable(f,e.mk_string_symbol(f,t))))}function dt(t,n,r){return O(t)&&k(n)&&k(r)?Bt(t,n,r):((0,i.assert)(!O(t)&&!k(n)&&!k(r),`Mixed expressions and goals`),typeof t==`boolean`&&(t=M.val(t)),n=A(n),r=A(r),b(g(e.mk_ite(f,t.ptr,n.ast,r.ast))))}function ft(...t){return(0,i.assert)(t.length>0,`Can't make Distinct ouf of nothing`),new H(g(e.mk_distinct(f,t.map(e=>(e=A(e),p(e),e.ast)))))}function pt(t,n){return p(n),b(g(e.mk_const(f,_(t),n.ptr)))}function mt(e,t){return p(t),typeof e==`string`&&(e=e.split(` `)),e.map(e=>pt(e,t))}function ht(t,n=`c`){return p(t),b(e.mk_fresh_const(t.ctx.ptr,n,t.ptr))}function gt(t,n){return p(n),b(e.mk_bound(n.ctx.ptr,t,n.ptr))}function _t(t,n){return t=A(t),n=A(n),p(t,n),new H(g(e.mk_implies(f,t.ptr,n.ptr)))}function vt(t,n){return t=A(t),n=A(n),p(t,n),new H(g(e.mk_iff(f,t.ptr,n.ptr)))}function yt(e,t){return e=A(e),t=A(t),p(e,t),e.eq(t)}function bt(t,n){return t=A(t),n=A(n),p(t,n),new H(g(e.mk_xor(f,t.ptr,n.ptr)))}function xt(t){return typeof t==`boolean`&&(t=A(t)),p(t),O(t)?new cr(g(e.probe_not(f,t.ptr))):new H(g(e.mk_not(f,t.ptr)))}function St(...t){if(t.length==1&&t[0]instanceof $.AstVector&&(t=[...t[0].values()],(0,i.assert)((0,i.allSatisfy)(t,me)??!0,`AstVector containing not bools`)),(0,i.allSatisfy)(t,O)??!1)return ae(e.probe_and,t);{let n=t.map(A);return p(...n),new H(g(e.mk_and(f,n.map(e=>e.ptr))))}}function Ct(...t){if(t.length==1&&t[0]instanceof $.AstVector&&(t=[...t[0].values()],(0,i.assert)((0,i.allSatisfy)(t,me)??!0,`AstVector containing not bools`)),(0,i.allSatisfy)(t,O)??!1)return ae(e.probe_or,t);{let n=t.map(A);return p(...n),new H(g(e.mk_or(f,n.map(e=>e.ptr))))}}function wt(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new H(g(e.mk_pbeq(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 H(g(e.mk_pbge(f,t.map(e=>e.ast),n,r)))}function Et(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new H(g(e.mk_pble(f,t.map(e=>e.ast),n,r)))}function Dt(t,n){return p(...t),new H(g(e.mk_atmost(f,t.map(e=>e.ast),n)))}function Ot(t,n){return p(...t),new H(g(e.mk_atleast(f,t.map(e=>e.ast),n)))}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,!0,r,_(``),_(``),t.map(e=>e.ptr),[],[],n.ptr)))}function At(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 jt(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 Mt(t){return t=A(t),p(t),(0,i.assert)(Te(t),`Int expression expected`),new W(g(e.mk_int2real(f,t.ast)))}function Nt(t){return C(t)||(t=P.val(t)),p(t),(0,i.assert)(Oe(t),`Real expression expected`),new W(g(e.mk_real2int(f,t.ast)))}function Pt(t){return C(t)||(t=P.val(t)),p(t),(0,i.assert)(Oe(t),`Real expression expected`),new H(g(e.mk_is_int(f,t.ast)))}function Ft(e){return C(e)||(e=P.val(e)),e.pow(`1/2`)}function It(e){return C(e)||(e=P.val(e)),e.pow(`1/3`)}function Lt(t,n){return p(t),new W(g(e.mk_bv2int(f,t.ast,n)))}function Rt(t,n){return T(t)?(0,i.assert)(Te(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 K(g(e.mk_int2bv(f,n,t.ast)))}function zt(...t){return p(...t),t.reduce((t,n)=>new K(g(e.mk_concat(f,t.ast,n.ast))))}function Bt(t,n,r){return p(t,n,r),new U(g(e.tactic_cond(f,t.ptr,n.ptr,r.ptr)))}function R(e){return typeof e==`string`?new U(e):e}function Vt(t,n,...r){let i=R(t),a=R(n);p(i,a),i=new U(g(e.tactic_and_then(f,i.ptr,a.ptr)));for(let t of r)a=R(t),p(i,a),i=new U(g(e.tactic_and_then(f,i.ptr,a.ptr)));return i}function Ht(t,n,...r){let i=R(t),a=R(n);p(i,a),i=new U(g(e.tactic_or_else(f,i.ptr,a.ptr)));for(let t of r)a=R(t),p(i,a),i=new U(g(e.tactic_or_else(f,i.ptr,a.ptr)));return i}function Ut(t,n){let r=R(t);p(r);let i=n===void 0?4294967295:n;return new U(g(e.tactic_repeat(f,r.ptr,i)))}function Wt(t,n){let r=R(t);return p(r),new U(g(e.tactic_try_for(f,r.ptr,n)))}function Gt(t,n){let r=R(n);return p(t,r),new U(g(e.tactic_when(f,t.ptr,r.ptr)))}function Kt(){return new U(g(e.tactic_skip(f)))}function qt(){return new U(g(e.tactic_fail(f)))}function Jt(t){return p(t),new U(g(e.tactic_fail_if(f,t.ptr)))}function Yt(...t){(0,i.assert)(t.length>0,`ParOr requires at least one tactic`);let n=t.map(e=>R(e));p(...n);let r=n.map(e=>e.ptr);return new U(g(e.tactic_par_or(f,r)))}function Xt(t,n){let r=R(t),i=R(n);return p(r,i),new U(g(e.tactic_par_and_then(f,r.ptr,i.ptr)))}function Zt(t,n){let r=R(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 U(g(e.tactic_using_params(f,r.ptr,i)))}finally{e.params_dec_ref(f,i)}}function Qt(t,n){return new H(g(e.mk_lt(f,t.ast,t.sort.cast(n).ast)))}function $t(t,n){return new H(g(e.mk_gt(f,t.ast,t.sort.cast(n).ast)))}function en(t,n){return new H(g(e.mk_le(f,t.ast,t.sort.cast(n).ast)))}function tn(t,n){return new H(g(e.mk_ge(f,t.ast,t.sort.cast(n).ast)))}function nn(t,n){return new H(g(e.mk_bvult(f,t.ast,t.sort.cast(n).ast)))}function rn(t,n){return new H(g(e.mk_bvugt(f,t.ast,t.sort.cast(n).ast)))}function an(t,n){return new H(g(e.mk_bvule(f,t.ast,t.sort.cast(n).ast)))}function on(t,n){return new H(g(e.mk_bvuge(f,t.ast,t.sort.cast(n).ast)))}function sn(t,n){return new H(g(e.mk_bvslt(f,t.ast,t.sort.cast(n).ast)))}function cn(t,n){return new H(g(e.mk_bvsgt(f,t.ast,t.sort.cast(n).ast)))}function ln(t,n){return new H(g(e.mk_bvsle(f,t.ast,t.sort.cast(n).ast)))}function un(t,n){return new H(g(e.mk_bvsge(f,t.ast,t.sort.cast(n).ast)))}function dn(t,n,r){return new K(g(e.mk_extract(f,t,n,r.ast)))}function fn(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 pn(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 mn(t,n){return b(g(e.mk_array_ext(f,t.ast,n.ast)))}function hn(...t){return new X(g(e.mk_set_union(f,t.map(e=>e.ast))))}function gn(...t){return new X(g(e.mk_set_intersect(f,t.map(e=>e.ast))))}function _n(t,n){return new X(g(e.mk_set_difference(f,t.ast,n.ast)))}function vn(t,n){let r=t.elemSort().cast(n);return new X(g(e.mk_set_add(f,t.ast,r.ast)))}function yn(t,n){let r=t.elemSort().cast(n);return new X(g(e.mk_set_del(f,t.ast,r.ast)))}function bn(t){return new X(g(e.mk_set_complement(f,t.ast)))}function xn(t){return new X(g(e.mk_empty_set(f,t.ptr)))}function Sn(t){return new X(g(e.mk_full_set(f,t.ptr)))}function Cn(t,n){let r=n.elemSort().cast(t);return new H(g(e.mk_set_member(f,r.ast,n.ast)))}function wn(t,n){return new H(g(e.mk_set_subset(f,t.ast,n.ast)))}function Tn(t,n){let r=D(t)?t:I.val(t);return new H(g(e.mk_seq_in_re(f,r.ast,n.ast)))}function En(...t){if(t.length===0)throw Error(`Union requires at least one argument`);return t.length===1?t[0]:new Y(g(e.mk_re_union(f,t.map(e=>e.ast))))}function Dn(...t){if(t.length===0)throw Error(`Intersect requires at least one argument`);return t.length===1?t[0]:new Y(g(e.mk_re_intersect(f,t.map(e=>e.ast))))}function On(...t){if(t.length===0)throw Error(`ReConcat requires at least one argument`);return t.length===1?t[0]:new Y(g(e.mk_re_concat(f,t.map(e=>e.ast))))}function kn(t){return new Y(g(e.mk_re_plus(f,t.ast)))}function An(t){return new Y(g(e.mk_re_star(f,t.ast)))}function jn(t){return new Y(g(e.mk_re_option(f,t.ast)))}function Mn(t){return new Y(g(e.mk_re_complement(f,t.ast)))}function Nn(t,n){return new Y(g(e.mk_re_diff(f,t.ast,n.ast)))}function Pn(t,n){let r=D(t)?t:I.val(t),i=D(n)?n:I.val(n);return new Y(g(e.mk_re_range(f,r.ast,i.ast)))}function Fn(t,n,r=0){return new Y(g(e.mk_re_loop(f,t.ast,n,r)))}function In(t,n){return new Y(g(e.mk_re_power(f,t.ast,n)))}function Ln(t){return new Y(g(e.mk_re_allchar(f,t.ptr)))}function Rn(t){return new Y(g(e.mk_re_empty(f,t.ptr)))}function zn(t){return new Y(g(e.mk_re_full(f,t.ptr)))}function Bn(t,n){return new B(g(e.mk_partial_order(f,t.ptr,n)))}function Vn(t,n){return new B(g(e.mk_linear_order(f,t.ptr,n)))}function Hn(t,n){return new B(g(e.mk_piecewise_linear_order(f,t.ptr,n)))}function Un(t,n){return new B(g(e.mk_tree_order(f,t.ptr,n)))}function Wn(t){return new B(g(e.mk_transitive_closure(f,t.ptr)))}function Gn(t){return new V(g(e.mk_char(f,t)))}function Kn(t,n){return new H(g(e.mk_char_le(f,t.ast,n.ast)))}function qn(t){return new W(g(e.mk_char_to_int(f,t.ast)))}function Jn(t){return new V(g(e.mk_char_to_bv(f,t.ast)))}function Yn(t){return new V(g(e.mk_char_from_bv(f,t.ast)))}function Xn(t){return new H(g(e.mk_char_is_digit(f,t.ast)))}async function Zn(t,n,r){let i=await e.polynomial_subresultants(f,t.ast,n.ast,r.ast);return new Q(g(i))}class Qn{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 $n{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 nr(g(e.solver_get_model(f,this.ptr)))}statistics(){return new rr(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 er{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 nr(g(e.optimize_get_model(f,this.ptr)))}statistics(){return new rr(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 tr{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 rr(g(e.fixedpoint_get_statistics(f,this.ptr)))}release(){e.fixedpoint_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}}class nr{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 B(g(e.model_get_const_decl(f,this.ptr,t))):new B(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 ar(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 ar(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 rr{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 ir{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 ar{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 ir(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 z extends Qn{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 B extends Qn{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 z(g(e.get_decl_sort_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_AST:r.push(new V(g(e.get_decl_ast_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_FUNC_DECL:r.push(new B(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 V extends Qn{get sort(){return y(e.get_sort(f,this.ast))}eq(t){return new H(g(e.mk_eq(f,this.ast,A(t).ast)))}neq(t){return new H(g(e.mk_distinct(f,[this,t].map(e=>A(e).ast))))}name(){return this.decl().name()}params(){return this.decl().params()}decl(){return(0,i.assert)(x(this),`Z3 application expected`),new B(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 or{constructor(e){this.ptr=e,this.ctx=$}}class sr extends z{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 hr}}class H extends V{not(){return xt(this)}and(e){return St(this,e)}or(e){return Ct(this,e)}xor(e){return bt(this,e)}implies(e){return _t(this,e)}iff(e){return vt(this,e)}}class cr{constructor(e){this.ptr=e,this.ctx=$}apply(t){return p(t),e.probe_apply(f,this.ptr,t.ptr)}}class lr{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(lr.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=me(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 H(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 nr(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 St(...t)}}toString(){return e.goal_to_string(f,this.ptr)}dimacs(t=!0){return e.goal_to_dimacs_string(f,this.ptr,t)}}class ur{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 lr.fromPtr(n)}toString(){return e.apply_result_to_string(f,this.ptr)}}let dr={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 U{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;me(t)?(n=new lr,n.add(t)):n=t,p(n);let r=await e.tactic_apply(f,this.ptr,n.ptr),i=new ur(g(r));return new Proxy(i,dr)}solver(){let t=g(e.mk_solver_from_tactic(f,this.ptr));return new $n(t)}help(){return e.tactic_get_help(f,this.ptr)}paramDescrs(){let t=g(e.tactic_get_param_descrs(f,this.ptr));return new pr(t)}usingParams(t){p(t);let n=g(e.tactic_using_params(f,this.ptr,t.ptr));return new U(n)}}class fr{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 pr{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 mr{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 pr(t)}usingParams(t){p(t);let n=g(e.simplifier_using_params(f,this.ptr,t.ptr));return new mr(n)}andThen(t){p(t);let n=g(e.simplifier_and_then(f,this.ptr,t.ptr));return new mr(n)}}class hr extends z{cast(e){let t=De(this)?`IntSort`:`RealSort`;if(C(e)){let n=e.sort;if(T(e)){if(this.eqIdentity(n))return e;if(De(n)&&Ae(this))return Mt(e);(0,i.assert)(!1,`Can't cast Real to IntSort without loss`)}else if(me(e))return De(this)?dt(e,1,0):Mt(dt(e,1,0));(0,i.assert)(!1,`Can't cast expression to ${t}`)}else{if(typeof e!=`boolean`)return De(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 gr(t,...n){if(t instanceof K){if(n.length!==1)throw Error(`BitVec add only supports 2 arguments`);return new K(g(e.mk_bvadd(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof W),new W(g(e.mk_add(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function _r(t,...n){if(t instanceof K){if(n.length!==1)throw Error(`BitVec sub only supports 2 arguments`);return new K(g(e.mk_bvsub(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof W),new W(g(e.mk_sub(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function vr(t,...n){if(t instanceof K){if(n.length!==1)throw Error(`BitVec mul only supports 2 arguments`);return new K(g(e.mk_bvmul(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof W),new W(g(e.mk_mul(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function yr(t,n){return t instanceof K?new K(g(e.mk_bvsdiv(f,t.ast,t.sort.cast(n).ast))):((0,i.assert)(t instanceof W),new W(g(e.mk_div(f,t.ast,t.sort.cast(n).ast))))}function br(t,n){return new K(g(e.mk_bvudiv(f,t.ast,t.sort.cast(n).ast)))}function xr(t){return t instanceof K?new K(g(e.mk_bvneg(f,t.ast))):((0,i.assert)(t instanceof W),new W(g(e.mk_unary_minus(f,t.ast))))}function Sr(t,n){return t instanceof K?new K(g(e.mk_bvsrem(f,t.ast,t.sort.cast(n).ast))):((0,i.assert)(t instanceof W),new W(g(e.mk_mod(f,t.ast,t.sort.cast(n).ast))))}class W extends V{add(e){return gr(this,e)}mul(e){return vr(this,e)}sub(e){return _r(this,e)}pow(t){return new W(g(e.mk_power(f,this.ast,this.sort.cast(t).ast)))}div(e){return yr(this,e)}mod(e){return Sr(this,e)}neg(){return xr(this)}le(e){return en(this,e)}lt(e){return Qt(this,e)}gt(e){return $t(this,e)}ge(e){return tn(this,e)}}class Cr extends W{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 wr extends W{value(){return{numerator:this.numerator().value(),denominator:this.denominator().value()}}numerator(){return new Cr(e.get_numerator(f,this.ast))}denominator(){return new Cr(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 G{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 G(g(e.rcf_add(f,this.ptr,t.ptr)))}sub(t){return p(t),new G(g(e.rcf_sub(f,this.ptr,t.ptr)))}mul(t){return p(t),new G(g(e.rcf_mul(f,this.ptr,t.ptr)))}div(t){return p(t),new G(g(e.rcf_div(f,this.ptr,t.ptr)))}neg(){return new G(g(e.rcf_neg(f,this.ptr)))}inv(){return new G(g(e.rcf_inv(f,this.ptr)))}power(t){return new G(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 Tr extends z{size(){return e.get_bv_sort_size(f,this.ptr)}subsort(e){return Me(e)&&this.size()<e.size()}cast(e){return C(e)?(p(e),e):((0,i.assert)(!s(e),`Can't convert rational to BitVec`),rt.val(e,this.size()))}}class K extends V{size(){return this.sort.size()}add(e){return gr(this,e)}mul(e){return vr(this,e)}sub(e){return _r(this,e)}sdiv(e){return yr(this,e)}udiv(e){return br(this,e)}smod(e){return Sr(this,e)}urem(t){return new K(g(e.mk_bvurem(f,this.ast,this.sort.cast(t).ast)))}srem(t){return new K(g(e.mk_bvsrem(f,this.ast,this.sort.cast(t).ast)))}neg(){return xr(this)}or(t){return new K(g(e.mk_bvor(f,this.ast,this.sort.cast(t).ast)))}and(t){return new K(g(e.mk_bvand(f,this.ast,this.sort.cast(t).ast)))}nand(t){return new K(g(e.mk_bvnand(f,this.ast,this.sort.cast(t).ast)))}xor(t){return new K(g(e.mk_bvxor(f,this.ast,this.sort.cast(t).ast)))}xnor(t){return new K(g(e.mk_bvxnor(f,this.ast,this.sort.cast(t).ast)))}shr(t){return new K(g(e.mk_bvashr(f,this.ast,this.sort.cast(t).ast)))}lshr(t){return new K(g(e.mk_bvlshr(f,this.ast,this.sort.cast(t).ast)))}shl(t){return new K(g(e.mk_bvshl(f,this.ast,this.sort.cast(t).ast)))}rotateRight(t){return new K(g(e.mk_ext_rotate_right(f,this.ast,this.sort.cast(t).ast)))}rotateLeft(t){return new K(g(e.mk_ext_rotate_left(f,this.ast,this.sort.cast(t).ast)))}not(){return new K(g(e.mk_bvnot(f,this.ast)))}extract(e,t){return dn(e,t,this)}signExt(t){return new K(g(e.mk_sign_ext(f,t,this.ast)))}zeroExt(t){return new K(g(e.mk_zero_ext(f,t,this.ast)))}repeat(t){return new K(g(e.mk_repeat(f,t,this.ast)))}sle(e){return ln(this,e)}ule(e){return an(this,e)}slt(e){return sn(this,e)}ult(e){return nn(this,e)}sge(e){return un(this,e)}uge(e){return on(this,e)}sgt(e){return cn(this,e)}ugt(e){return rn(this,e)}redAnd(){return new K(g(e.mk_bvredand(f,this.ast)))}redOr(){return new K(g(e.mk_bvredor(f,this.ast)))}addNoOverflow(t,n){return new H(g(e.mk_bvadd_no_overflow(f,this.ast,this.sort.cast(t).ast,n)))}addNoUnderflow(t){return new H(g(e.mk_bvadd_no_underflow(f,this.ast,this.sort.cast(t).ast)))}subNoOverflow(t){return new H(g(e.mk_bvsub_no_overflow(f,this.ast,this.sort.cast(t).ast)))}subNoUnderflow(t,n){return new H(g(e.mk_bvsub_no_underflow(f,this.ast,this.sort.cast(t).ast,n)))}sdivNoOverflow(t){return new H(g(e.mk_bvsdiv_no_overflow(f,this.ast,this.sort.cast(t).ast)))}mulNoOverflow(t,n){return new H(g(e.mk_bvmul_no_overflow(f,this.ast,this.sort.cast(t).ast,n)))}mulNoUnderflow(t){return new H(g(e.mk_bvmul_no_underflow(f,this.ast,this.sort.cast(t).ast)))}negNoOverflow(){return new H(g(e.mk_bvneg_no_overflow(f,this.ast)))}}class Er extends K{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 Dr extends z{cast(e){if(ze(e))return p(e),e;throw Error(`Can't cast to FPRMSort`)}}class Or extends V{}class kr extends z{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 F.val(e,this);throw Error(`Can't cast to FPSort`)}}class q extends V{add(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_add(f,t.ast,this.ast,r.ast)))}sub(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_sub(f,t.ast,this.ast,r.ast)))}mul(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_mul(f,t.ast,this.ast,r.ast)))}div(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_div(f,t.ast,this.ast,r.ast)))}neg(){return new q(g(e.mk_fpa_neg(f,this.ast)))}abs(){return new q(g(e.mk_fpa_abs(f,this.ast)))}sqrt(t){return new q(g(e.mk_fpa_sqrt(f,t.ast,this.ast)))}rem(t){let n=E(t)?t:F.val(t,this.sort);return new q(g(e.mk_fpa_rem(f,this.ast,n.ast)))}fma(t,n,r){let i=E(n)?n:F.val(n,this.sort),a=E(r)?r:F.val(r,this.sort);return new q(g(e.mk_fpa_fma(f,t.ast,this.ast,i.ast,a.ast)))}lt(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_lt(f,this.ast,n.ast)))}gt(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_gt(f,this.ast,n.ast)))}le(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_leq(f,this.ast,n.ast)))}ge(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_geq(f,this.ast,n.ast)))}isNaN(){return new H(g(e.mk_fpa_is_nan(f,this.ast)))}isInf(){return new H(g(e.mk_fpa_is_infinite(f,this.ast)))}isZero(){return new H(g(e.mk_fpa_is_zero(f,this.ast)))}isNormal(){return new H(g(e.mk_fpa_is_normal(f,this.ast)))}isSubnormal(){return new H(g(e.mk_fpa_is_subnormal(f,this.ast)))}isNegative(){return new H(g(e.mk_fpa_is_negative(f,this.ast)))}isPositive(){return new H(g(e.mk_fpa_is_positive(f,this.ast)))}toIEEEBV(){return new K(g(e.mk_fpa_to_ieee_bv(f,this.ast)))}toReal(){return new W(g(e.mk_fpa_to_real(f,this.ast)))}}class Ar extends q{value(){return e.get_numeral_double(f,this.ast)}}class jr extends z{isString(){return e.is_string_sort(f,this.ptr)}basis(){return y(g(e.get_seq_sort_basis(f,this.ptr)))}cast(e){if(D(e))return p(e),e;if(typeof e==`string`)return I.val(e);throw Error(`Can't cast to SeqSort`)}}class J extends V{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=D(t)?t:I.val(t);return new J(g(e.mk_seq_concat(f,[this.ast,n.ast])))}length(){return new W(g(e.mk_seq_length(f,this.ast)))}at(t){let n=T(t)?t:N.val(t);return new J(g(e.mk_seq_at(f,this.ast,n.ast)))}nth(t){let n=T(t)?t:N.val(t);return b(g(e.mk_seq_nth(f,this.ast,n.ast)))}extract(t,n){let r=T(t)?t:N.val(t),i=T(n)?n:N.val(n);return new J(g(e.mk_seq_extract(f,this.ast,r.ast,i.ast)))}indexOf(t,n){let r=D(t)?t:I.val(t),i=n===void 0?N.val(0):T(n)?n:N.val(n);return new W(g(e.mk_seq_index(f,this.ast,r.ast,i.ast)))}lastIndexOf(t){let n=D(t)?t:I.val(t);return new W(g(e.mk_seq_last_index(f,this.ast,n.ast)))}contains(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_seq_contains(f,this.ast,n.ast)))}prefixOf(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_seq_prefix(f,this.ast,n.ast)))}suffixOf(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_seq_suffix(f,this.ast,n.ast)))}replace(t,n){let r=D(t)?t:I.val(t),i=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace(f,this.ast,r.ast,i.ast)))}replaceAll(t,n){let r=D(t)?t:I.val(t),i=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace_all(f,this.ast,r.ast,i.ast)))}replaceRe(t,n){let r=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace_re(f,this.ast,t.ast,r.ast)))}replaceReAll(t,n){let r=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace_re_all(f,this.ast,t.ast,r.ast)))}toInt(){return new W(g(e.mk_str_to_int(f,this.ast)))}toCode(){return new W(g(e.mk_string_to_code(f,this.ast)))}lt(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_str_lt(f,this.ast,n.ast)))}le(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_str_le(f,this.ast,n.ast)))}map(t){return new J(g(e.mk_seq_map(f,t.ast,this.ast)))}mapi(t,n){let r=T(n)?n:N.val(n);return new J(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=T(n)?n:N.val(n);return b(g(e.mk_seq_foldli(f,t.ast,i.ast,r.ast,this.ast)))}}class Mr extends z{basis(){return y(g(e.get_re_sort_basis(f,this.ptr)))}cast(e){if(Ue(e))return p(e),e;throw Error(`Can't cast to ReSort`)}}class Y extends V{plus(){return new Y(g(e.mk_re_plus(f,this.ast)))}star(){return new Y(g(e.mk_re_star(f,this.ast)))}option(){return new Y(g(e.mk_re_option(f,this.ast)))}complement(){return new Y(g(e.mk_re_complement(f,this.ast)))}union(t){return new Y(g(e.mk_re_union(f,[this.ast,t.ast])))}intersect(t){return new Y(g(e.mk_re_intersect(f,[this.ast,t.ast])))}diff(t){return new Y(g(e.mk_re_diff(f,this.ast,t.ast)))}concat(t){return new Y(g(e.mk_re_concat(f,[this.ast,t.ast])))}loop(t,n=0){return new Y(g(e.mk_re_loop(f,this.ast,t,n)))}power(t){return new Y(g(e.mk_re_power(f,this.ast,t)))}}class Nr extends z{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 Pr extends V{domain(){return this.sort.domain()}domain_n(e){return this.sort.domain_n(e)}range(){return this.sort.range()}select(...e){return fn(this,...e)}store(...e){return pn(this,...e)}default(){return b(g(e.mk_array_default(f,this.ast)))}}class X extends V{elemSort(){return this.sort.domain()}union(...e){return hn(this,...e)}intersect(...e){return gn(this,...e)}diff(e){return _n(this,e)}add(e){return vn(this,e)}del(e){return yn(this,e)}complement(){return bn(this)}contains(e){return Cn(e,this)}subsetOf(e){return wn(this,e)}}class Fr extends z{elemSort(){return y(g(e.get_finite_set_sort_basis(f,this.ptr)))}cast(e){return p(e),e}}class Z extends V{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 H(g(e.mk_finite_set_member(f,t.ast,this.ast)))}size(){return new V(g(e.mk_finite_set_size(f,this.ast)))}subsetOf(t){return new H(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 z{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 B(n)}recognizer(t){let n=e.get_datatype_sort_recognizer(f,this.ptr,t);return new B(n)}accessor(t,n){let r=e.get_datatype_sort_constructor_accessor(f,this.ptr,t,n);return new B(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 V{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 or(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 xt(this)}and(e){return St(this,e)}or(e){return Ct(this,e)}xor(e){return bt(this,e)}implies(e){return _t(this,e)}iff(e){return vt(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 fn(this,...e)}store(...e){return pn(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:$n,Optimize:er,Fixedpoint:tr,Model:nr,Tactic:U,Goal:lr,Params:fr,Simplifier:mr,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:me,isTrue:he,isFalse:ge,isAnd:_e,isOr:ve,isImplies:ye,isNot:be,isEq:xe,isDistinct:Se,isQuantifier:Ce,isArith:T,isArithSort:we,isInt:Te,isIntVal:Ee,isIntSort:De,isReal:Oe,isRealVal:ke,isRealSort:Ae,isRCFNum:je,isBitVecSort:Me,isBitVec:Ne,isBitVecVal:Pe,isFPRMSort:Re,isFPRM:ze,isFPSort:Be,isFP:E,isFPVal:Ve,isSeqSort:He,isSeq:D,isStringSort:We,isString:Ge,isFiniteSetSort:Ke,isFiniteSet:qe,isArraySort:Fe,isArray:Ie,isConstArray:Le,isProbe:O,isTactic:k,isGoal:Je,isAstVector:Ye,eqIdentity:Xe,getVarIndex:Ze,from:A,solve:Qe,Sort:et,Function:tt,RecFunc:j,Bool:M,Int:N,Real:P,RCFNum:nt,BitVec:rt,Float:F,FloatRM:it,String:I,Seq:at,Re:ot,Array:st,Set:ct,FiniteSet:L,Datatype:lt,TypeVariable:ut,If:dt,Distinct:ft,Const:pt,Consts:mt,FreshConst:ht,Var:gt,Implies:_t,Iff:vt,Eq:yt,Xor:bt,Not:xt,And:St,Or:Ct,PbEq:wt,PbGe:Tt,PbLe:Et,AtMost:Dt,AtLeast:Ot,ForAll:kt,Exists:At,Lambda:jt,ToReal:Mt,ToInt:Nt,IsInt:Pt,Sqrt:Ft,Cbrt:It,BV2Int:Lt,Int2BV:Rt,Concat:zt,Cond:Bt,AndThen:Vt,OrElse:Ht,Repeat:Ut,TryFor:Wt,When:Gt,Skip:Kt,Fail:qt,FailIf:Jt,ParOr:Yt,ParAndThen:Xt,With:Zt,LT:Qt,GT:$t,LE:en,GE:tn,ULT:nn,UGT:rn,ULE:an,UGE:on,SLT:sn,SGT:cn,SLE:ln,SGE:un,Sum:gr,Sub:_r,Product:vr,Div:yr,BUDiv:br,Neg:xr,Mod:Sr,Select:fn,Store:pn,Ext:mn,Extract:dn,substitute:Wr,substituteVars:Gr,substituteFuns:Kr,updateField:qr,simplify:$e,ast_from_string:Jr,SetUnion:hn,SetIntersect:gn,SetDifference:_n,SetAdd:vn,SetDel:yn,SetComplement:bn,EmptySet:xn,FullSet:Sn,isMember:Cn,isSubset:wn,InRe:Tn,Union:En,Intersect:Dn,ReConcat:On,Plus:kn,Star:An,Option:jn,Complement:Mn,Diff:Nn,Range:Pn,Loop:Fn,Power:In,AllChar:Ln,Empty:Rn,Full:zn,mkPartialOrder:Bn,mkLinearOrder:Vn,mkPiecewiseLinearOrder:Hn,mkTreeOrder:Un,mkTransitiveClosure:Wn,mkChar:Gn,mkCharLe:Kn,mkCharToInt:qn,mkCharToBV:Jn,mkCharFromBV:Yn,mkCharIsDigit:Xn,polynomialSubresultants:Zn};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}}})),Xe=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(Ye(),e),n(k(),e)})),Ze=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=Xe(),i=O();n(k(),e),n(Ke(),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}}})),A=null,Qe=null,$e=null,et=null,tt=new WeakMap;function j(e,t){if(e.error)return;let n=t instanceof Error?t:Error(`[WaSHI] Z3 internal worker error: ${typeof t==`object`&&t&&`message`in t?String(t.message):String(t)}`);e.error=n;for(let t of e.asyncRejects)t(n);e.asyncRejects.clear(),et===e&&F();try{e.instance?.em?.PThread?.terminateAllThreads()}catch{}e.bootstrapUrl&&URL.revokeObjectURL(e.bootstrapUrl);for(let t of Array.from(e.errorHandlers))try{t(n)}catch{}e.errorHandlers.clear()}function M(e,t){if(!e||e.__washi_async_call_hooked)return;e.__washi_async_call_hooked=!0;let n=e.async_call;typeof n==`function`&&(e.async_call=function(e,...r){if(t.error)return Promise.reject(t.error);let i,a=new Promise((e,n)=>{i=n,t.asyncRejects.add(n)});a.catch(()=>{});try{let o=n.call(this,e,...r);return Promise.race([o,a]).finally(()=>{t.asyncRejects.delete(i)})}catch(e){throw t.asyncRejects.delete(i),j(t,e),e}})}function N(e,t){let n=t?tt.get(t):et;return n?n.error?(e(n.error),()=>{}):(n.errorHandlers.add(e),()=>{n.errorHandlers.delete(e)}):()=>{}}function P(e){et&&j(et,e)}function nt(e,t){if(!e||!e.PThread||e.PThread.__washi_monitored)return;e.PThread.__washi_monitored=!0;let n=e=>{e&&(e.onerror=e=>{j(t,e)},typeof e.addEventListener==`function`&&e.addEventListener(`error`,e=>{j(t,e),typeof e.preventDefault==`function`&&e.preventDefault()}))};Array.isArray(e.PThread.unusedWorkers)&&e.PThread.unusedWorkers.forEach(n),Array.isArray(e.PThread.runningWorkers)&&e.PThread.runningWorkers.forEach(n);let r=e.PThread.loadWasmModuleToWorker;typeof r==`function`&&(e.PThread.loadWasmModuleToWorker=function(e){try{let n=r.call(this,e);return e.onerror=e=>{j(t,e)},n}catch(e){throw j(t,e),e}});let i=e.PThread.allocateUnusedWorker;typeof i==`function`&&(e.PThread.allocateUnusedWorker=function(){try{i.call(this);let e=this.unusedWorkers?.[this.unusedWorkers.length-1];e&&n(e)}catch(e){throw j(t,e),e}})}function rt(e){e.jsUrl!==void 0&&(Qe=e.jsUrl),e.wasmUrl!==void 0&&($e=e.wasmUrl),F()}function F(){A=null,et=null}function it(){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 e{kind=`constraint`;id;_lhs;_sense;_rhs;_name;hasExplicitName;ownerModel=null;slack=null;dual=null;addTerm(e,t){return t===0?this:(this._lhs.addTerm(e,t),this.ownerModel?.notifyMutation?.(),this)}setTerm(e,t){return this._lhs.setTerm(e,t),this.ownerModel?.notifyMutation?.(),this}constructor(e,t,n,r){this.id=++p,this._lhs=e,this._sense=t,this._rhs=n;let i=typeof r==`string`?r.trim():void 0;i&&i.length>0?(this._name=i,this.hasExplicitName=!0):(this._name=`c_${this.id}`,this.hasExplicitName=!1)}get lhs(){return this._lhs}set lhs(e){this._lhs!==e&&(this._lhs=e,this.ownerModel?.notifyMutation?.())}get sense(){return this._sense}set sense(e){this._sense!==e&&(this._sense=e,this.ownerModel?.notifyMutation?.())}get rhs(){return this._rhs}set rhs(e){Object.is(this._rhs,e)||(this._rhs=e,this.ownerModel?.notifyMutation?.())}get name(){return this._name}set name(e){this._name!==e&&(this._name=e,this.ownerModel?.notifyMutation?.()),this.hasExplicitName=!0}_assignModelName(e,t){this._name=e,this.hasExplicitName=t}and(e){return new v(`and`,[this,e])}or(e){return new v(`or`,[this,e])}implies(e){return new v(`implies`,[this,e])}xor(e){return new v(`xor`,[this,e])}not(){return new v(`not`,[this])}add(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}sub(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}mul(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}div(e){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}neg(){throw Error(`Cannot perform arithmetic on a Constraint: expected a number, Var, LinExpr, or QuadExpr.`)}le(e,t){throw Error(`Cannot compare a Constraint in (<=): expected a number, Var, or LinExpr.`)}ge(e,t){throw Error(`Cannot compare a Constraint in (>=): expected a number, Var, or LinExpr.`)}eq(e,t){throw Error(`Cannot compare a Constraint in (==): expected a number, Var, or LinExpr.`)}get value(){throw Error(`Cannot read numeric value of a Constraint: expected a Var, LinExpr, or QuadExpr.`)}get constant(){throw Error(`Cannot read numeric constant of a Constraint: expected a LinExpr or QuadExpr.`)}clone(){return new e(this._lhs.clone(),this._sense,this._rhs,this.hasExplicitName?this._name:void 0)}toString(){let e=this.sense===`==`?`=`:this.sense;return`${this.name}: ${this.lhs.toString()} ${e} ${this.rhs}`}},h=0;function g(e,t){if(e instanceof _||e instanceof m)return e;throw typeof e==`object`&&e&&(`terms`in e||`quadTerms`in e)?Error(`Cannot use an arithmetic expression without a comparison operator (<=, >=, ==) in logical operator "${t}". Use a comparison constraint such as expr\`\${x} <= 10\` or a BoolVar/BoolExpr.`):typeof e==`object`&&e&&`id`in e&&`name`in e&&`lb`in e&&`ub`in e&&!(`sense`in e)?Error(`Invalid operand passed to logical operator "${t}": expected a BoolVar, BoolExpr, or Constraint, but received numeric variable "${e.name}". Use m.bool() for propositional variables, add a comparison such as expr\`\${x} == 1\`, or use m.indicator(binVar, constraint) for 0-1 Big-M indicator constraints.`):Error(`Invalid operand passed to logical operator "${t}": expected a BoolVar, BoolExpr, or Constraint.`)}var _=class{and(e){return new v(`and`,[this,g(e,`and`)])}or(e){return new v(`or`,[this,g(e,`or`)])}implies(e){return new v(`implies`,[this,g(e,`implies`)])}xor(e){return new v(`xor`,[this,g(e,`xor`)])}not(){return new v(`not`,[this])}},ee=class extends _{id;name;value=null;constructor(e){super(),this.id=++h,this.name=e||`p_${this.id}`}toString(){return this.name}},v=class extends _{op;children;constructor(e,t){super(),this.op=e,this.children=t.map(t=>g(t,e))}toString(){return this.op===`not`?`not(${this.children[0].toString()})`:`(${this.children.map(e=>e.toString()).join(` ${this.op} `)})`}};function te(e){return typeof e==`object`&&!!e&&typeof e.lpString==`string`&&e.nameToVar instanceof Map&&e.nameToConstraint instanceof Map}var ne=Symbol.for(`washi.solverRegistry`),y=globalThis;y[ne]||(y[ne]=new Map);var b=y[ne];function re(e,t){b.set(e.toLowerCase(),t)}var ie=typeof document<`u`?document.currentScript?.src:null,ae=ie?new URL(`.`,ie).href:null;function oe(e){if(!ae)throw Error(`[WaSHI] Load the browser IIFE using an external script src, or use the browser ESM build.`);return new URL(e,ae).href}function se(){return{jsUrl:oe(`z3-built.js`),wasmUrl:oe(`z3-built.wasm`)}}var ce=l({__addDisposableResource:()=>je,__assign:()=>Fe,__asyncDelegator:()=>T,__asyncGenerator:()=>Ce,__asyncValues:()=>we,__await:()=>Se,__awaiter:()=>me,__classPrivateFieldGet:()=>Oe,__classPrivateFieldIn:()=>Ae,__classPrivateFieldSet:()=>ke,__createBinding:()=>Ie,__decorate:()=>de,__disposeResources:()=>Me,__esDecorate:()=>x,__exportStar:()=>ge,__extends:()=>le,__generator:()=>he,__importDefault:()=>De,__importStar:()=>Ee,__makeTemplateObject:()=>Te,__metadata:()=>w,__param:()=>fe,__propKey:()=>C,__read:()=>ve,__rest:()=>ue,__rewriteRelativeImportExtension:()=>Ne,__runInitializers:()=>S,__setFunctionName:()=>pe,__spread:()=>ye,__spreadArray:()=>xe,__spreadArrays:()=>be,__values:()=>_e,default:()=>Be});function le(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);Pe(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function ue(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 de(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 fe(e,t){return function(n,r){t(n,r,e)}}function x(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 S(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 C(e){return typeof e==`symbol`?e:`${e}`}function pe(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,"name",{configurable:!0,value:n?`${n} ${t}`:t})}function w(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function me(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 he(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 ge(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Ie(t,e,n)}function _e(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 ve(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 ye(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(ve(arguments[t]));return e}function be(){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 xe(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 Se(e){return this instanceof Se?(this.v=e,this):new Se(e)}function Ce(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 Se?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 T(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:Se(e[r](t)),done:!1}:i?i(t):t}:i}}function we(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof _e==`function`?_e(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 Te(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Ee(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=Re(e),r=0;r<n.length;r++)n[r]!=="default"&&Ie(t,e,n[r]);return Le(t,e),t}function De(e){return e&&e.__esModule?e:{default:e}}function Oe(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 ke(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 Ae(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 je(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 Me(e){function t(t){e.error=e.hasError?new ze(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 Ne(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 Pe,Fe,Ie,Le,Re,ze,Be,E=s((()=>{Pe=function(e,t){return Pe=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])},Pe(e,t)},Fe=function(){return Fe=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},Fe.apply(this,arguments)},Ie=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]}),Le=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},Re=function(e){return Re=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},Re(e)},ze=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var r=Error(n);return r.name=`SuppressedError`,r.error=e,r.suppressed=t,r},Be={__extends:le,__assign:Fe,__rest:ue,__decorate:de,__param:fe,__esDecorate:x,__runInitializers:S,__propKey:C,__setFunctionName:pe,__metadata:w,__awaiter:me,__generator:he,__createBinding:Ie,__exportStar:ge,__values:_e,__read:ve,__spread:ye,__spreadArrays:be,__spreadArray:xe,__await:Se,__asyncGenerator:Ce,__asyncDelegator:T,__asyncValues:we,__makeTemplateObject:Te,__importStar:Ee,__importDefault:De,__classPrivateFieldGet:Oe,__classPrivateFieldSet:ke,__classPrivateFieldIn:Ae,__addDisposableResource:je,__disposeResources:Me,__rewriteRelativeImportExtension:Ne}})),Ve=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`)})),He=c((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(E(),f(ce)),n=Ve();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}()})),D=c((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=(E(),f(ce)),n=He();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}()})),Ue=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.withTimeout=void 0;var t=(E(),f(ce)),n=Ve();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})),We=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryAcquire=void 0;var t=Ve(),n=Ue();function r(e,r){return r===void 0&&(r=t.E_ALREADY_LOCKED),(0,n.withTimeout)(e,0,r)}e.tryAcquire=r})),Ge=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryAcquire=e.withTimeout=e.Semaphore=e.Mutex=void 0;var t=(E(),f(ce)),n=D();Object.defineProperty(e,"Mutex",{enumerable:!0,get:function(){return n.default}});var r=He();Object.defineProperty(e,"Semaphore",{enumerable:!0,get:function(){return r.default}});var i=Ue();Object.defineProperty(e,"withTimeout",{enumerable:!0,get:function(){return i.withTimeout}});var a=We();Object.defineProperty(e,"tryAcquire",{enumerable:!0,get:function(){return a.tryAcquire}}),(0,t.__exportStar)(Ve(),e)})),Ke=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={}))})),qe=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}}}})),O=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(Ke(),e),n(qe(),e)})),k=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{}})),Je=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assertExhaustive=n,e.assert=r,e.allSatisfy=i;var t=k();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}})),Ye=c((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createApi=c;var t=Ge(),n=O(),r=k(),i=Je(),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 B(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 sr(t);case n.Z3_sort_kind.Z3_INT_SORT:case n.Z3_sort_kind.Z3_REAL_SORT:return new hr(t);case n.Z3_sort_kind.Z3_BV_SORT:return new Tr(t);case n.Z3_sort_kind.Z3_FLOATING_POINT_SORT:return new kr(t);case n.Z3_sort_kind.Z3_ROUNDING_MODE_SORT:return new Dr(t);case n.Z3_sort_kind.Z3_SEQ_SORT:return new jr(t);case n.Z3_sort_kind.Z3_RE_SORT:return new Mr(t);case n.Z3_sort_kind.Z3_ARRAY_SORT:return new Nr(t);default:return e.is_finite_set_sort(f,t)?new Fr(t):new z(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 H(t);case n.Z3_sort_kind.Z3_INT_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Cr(t):new W(t);case n.Z3_sort_kind.Z3_REAL_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new wr(t):new W(t);case n.Z3_sort_kind.Z3_BV_SORT:return r===n.Z3_ast_kind.Z3_NUMERAL_AST?new Er(t):new K(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 Ar(t):new q(t);case n.Z3_sort_kind.Z3_ROUNDING_MODE_SORT:return new Or(t);case n.Z3_sort_kind.Z3_SEQ_SORT:return new J(t);case n.Z3_sort_kind.Z3_RE_SORT:return new Y(t);case n.Z3_sort_kind.Z3_ARRAY_SORT:return new Pr(t);default:return e.is_finite_set_sort(f,e.get_sort(f,t))?new Z(t):new V(t)}}function re(e){let t=[];for(let n of e)Ye(n)?t.push(...n.values()):t.push(n);return t}function ie(e){return O(e)?e:new cr(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 cr(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 nr;return t&&p(e),t}function le(e){let t=e instanceof Qn;return t&&p(e),t}function ue(e){let t=e instanceof z;return t&&p(e),t}function de(e){let t=e instanceof B;return t&&p(e),t}function fe(e){let t=e instanceof ar;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 V;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 me(e){let t=e instanceof V&&e.sort.kind()===n.Z3_sort_kind.Z3_BOOL_SORT;return t&&p(e),t}function he(e){return w(e,n.Z3_decl_kind.Z3_OP_TRUE)}function ge(e){return w(e,n.Z3_decl_kind.Z3_OP_FALSE)}function _e(e){return w(e,n.Z3_decl_kind.Z3_OP_AND)}function ve(e){return w(e,n.Z3_decl_kind.Z3_OP_OR)}function ye(e){return w(e,n.Z3_decl_kind.Z3_OP_IMPLIES)}function be(e){return w(e,n.Z3_decl_kind.Z3_OP_NOT)}function xe(e){return w(e,n.Z3_decl_kind.Z3_OP_EQ)}function Se(e){return w(e,n.Z3_decl_kind.Z3_OP_DISTINCT)}function Ce(e){let t=e instanceof Br;return t&&p(e),t}function T(e){let t=e instanceof W;return t&&p(e),t}function we(e){let t=e instanceof hr;return t&&p(e),t}function Te(e){return T(e)&&De(e.sort)}function Ee(e){let t=e instanceof Cr;return t&&p(e),t}function De(e){return ue(e)&&e.kind()===n.Z3_sort_kind.Z3_INT_SORT}function Oe(e){return T(e)&&Ae(e.sort)}function ke(e){let t=e instanceof wr;return t&&p(e),t}function Ae(e){return ue(e)&&e.kind()===n.Z3_sort_kind.Z3_REAL_SORT}function je(e){let t=e instanceof G;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 K;return t&&p(e),t}function Pe(e){let t=e instanceof Er;return t&&p(e),t}function Fe(e){let t=e instanceof Nr;return t&&p(e),t}function Ie(e){let t=e instanceof Pr;return t&&p(e),t}function Le(e){return w(e,n.Z3_decl_kind.Z3_OP_CONST_ARRAY)}function Re(e){let t=e instanceof Dr;return t&&p(e),t}function ze(e){let t=e instanceof Or;return t&&p(e),t}function Be(e){let t=e instanceof kr;return t&&p(e),t}function E(e){let t=e instanceof q;return t&&p(e),t}function Ve(e){let t=e instanceof Ar;return t&&p(e),t}function He(e){let t=e instanceof jr;return t&&p(e),t}function D(e){let t=e instanceof J;return t&&p(e),t}function Ue(e){let t=e instanceof Y;return t&&p(e),t}function We(e){return He(e)&&e.isString()}function Ge(e){return D(e)&&e.isString()}function Ke(e){let t=e instanceof Fr;return t&&p(e),t}function qe(e){let t=e instanceof Z;return t&&p(e),t}function O(e){let t=e instanceof cr;return t&&p(e),t}function k(e){let t=e instanceof U;return t&&p(e),t}function Je(e){let t=e instanceof lr;return t&&p(e),t}function Ye(e){let t=e instanceof Q;return t&&p(e),t}function Xe(e,t){return e.eqIdentity(t)}function Ze(t){return(0,i.assert)(pe(t),`Z3 bound variable expected`),e.get_index_value(f,t.ast)}function A(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 Qe(...e){let t=new $.Solver;t.add(...e);let n=await t.check();return n===`sat`?t.model():n}async function $e(t){return b(g(await e.simplify(f,t.ast)))}let et={declare:t=>new z(e.mk_uninterpreted_sort(f,_(t)))},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 B(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 B(e.mk_fresh_func_decl(f,`f`,i,r.ptr))}},j={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 B(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 sr(e.mk_bool_sort(f)),const:t=>new H(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 H(e.mk_fresh_const(f,t,M.sort().ptr)),val:t=>t?new H(e.mk_true(f)):new H(e.mk_false(f))},N={sort:()=>new hr(e.mk_int_sort(f)),const:t=>new W(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 W(e.mk_fresh_const(f,t,N.sort().ptr)),val:t=>((0,i.assert)(typeof t==`bigint`||typeof t==`string`||Number.isSafeInteger(t)),new Cr(g(e.mk_numeral(f,t.toString(),N.sort().ptr))))},P={sort:()=>new hr(e.mk_real_sort(f)),const:t=>new W(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 W(e.mk_fresh_const(f,t,P.sort().ptr)),val:t=>(s(t)&&(t=`${t.numerator}/${t.denominator}`),new wr(e.mk_numeral(f,t.toString(),P.sort().ptr)))},nt=Object.assign(e=>new G(e),{pi:()=>new G(g(e.rcf_mk_pi(f))),e:()=>new G(g(e.rcf_mk_e(f))),infinitesimal:()=>new G(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 G(a[e]));return o}}),rt={sort(t){return(0,i.assert)(Number.isSafeInteger(t),`number of bits must be an integer`),new Tr(e.mk_bv_sort(f,t))},const(t,n){return new K(g(e.mk_const(f,_(t),Me(n)?n.ptr:rt.sort(n).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>rt.const(e,t))},val(t,n){return t===!0?rt.val(1,n):t===!1?rt.val(0,n):new Er(g(e.mk_numeral(f,t.toString(),Me(n)?n.ptr:rt.sort(n).ptr)))}},F={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 kr(e.mk_fpa_sort(f,t,n))},sort16(){return new kr(e.mk_fpa_sort_16(f))},sort32(){return new kr(e.mk_fpa_sort_32(f))},sort64(){return new kr(e.mk_fpa_sort_64(f))},sort128(){return new kr(e.mk_fpa_sort_128(f))},const(t,n){return new q(g(e.mk_const(f,_(t),n.ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>F.const(e,t))},val(t,n){return new Ar(g(e.mk_fpa_numeral_double(f,t,n.ptr)))},NaN(t){return new Ar(g(e.mk_fpa_nan(f,t.ptr)))},inf(t,n=!1){return new Ar(g(e.mk_fpa_inf(f,t.ptr,n)))},zero(t,n=!1){return new Ar(g(e.mk_fpa_zero(f,t.ptr,n)))}},it={sort(){return new Dr(e.mk_fpa_rounding_mode_sort(f))},RNE(){return new Or(g(e.mk_fpa_rne(f)))},RNA(){return new Or(g(e.mk_fpa_rna(f)))},RTP(){return new Or(g(e.mk_fpa_rtp(f)))},RTN(){return new Or(g(e.mk_fpa_rtn(f)))},RTZ(){return new Or(g(e.mk_fpa_rtz(f)))}},I={sort(){return new jr(e.mk_string_sort(f))},const(t){return new J(g(e.mk_const(f,_(t),I.sort().ptr)))},consts(e){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>I.const(e))},val(t){return new J(g(e.mk_string(f,t)))},fromCode(t){let n=T(t)?t:N.val(t);return new J(g(e.mk_string_from_code(f,n.ast)))},fromInt(t){let n=T(t)?t:N.val(t);return new J(g(e.mk_int_to_str(f,n.ast)))}},at={sort(t){return new jr(e.mk_seq_sort(f,t.ptr))},empty(t){return new J(g(e.mk_seq_empty(f,at.sort(t).ptr)))},unit(t){return new J(g(e.mk_seq_unit(f,t.ast)))}},ot={sort(t){return new Mr(e.mk_re_sort(f,t.ptr))},toRe(t){let n=D(t)?t:I.val(t);return new Y(g(e.mk_seq_to_re(f,n.ast)))}},st={sort(...t){let n=t.length-1,r=t[n],i=t[0];if(n===1)return new Nr(e.mk_array_sort(f,i.ptr,r.ptr));let a=t.slice(0,n);return new Nr(e.mk_array_sort_n(f,a.map(e=>e.ptr),r.ptr))},const(t,...n){return new Pr(g(e.mk_const(f,_(t),st.sort(...n).ptr)))},consts(e,...t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>st.const(e,...t))},K(t,n){return new Pr(g(e.mk_const_array(f,t.ptr,n.ptr)))},fromFunc(t){return new Pr(g(e.mk_as_array(f,t.ptr)))}},ct={sort(e){return st.sort(e,M.sort())},const(t,n){return new X(g(e.mk_const(f,_(t),st.sort(n,M.sort()).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>ct.const(e,t))},empty(e){return xn(e)},val(e,t){var n=xn(t);for(let t of e)n=vn(n,t);return n}},L={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),L.sort(n).ptr)))},consts(e,t){return typeof e==`string`&&(e=e.split(` `)),e.map(e=>L.const(e,t))},empty(t){return new Z(g(e.mk_finite_set_empty(f,L.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 z(g(e.mk_type_variable(f,e.mk_string_symbol(f,t))))}function dt(t,n,r){return O(t)&&k(n)&&k(r)?Bt(t,n,r):((0,i.assert)(!O(t)&&!k(n)&&!k(r),`Mixed expressions and goals`),typeof t==`boolean`&&(t=M.val(t)),n=A(n),r=A(r),b(g(e.mk_ite(f,t.ptr,n.ast,r.ast))))}function ft(...t){return(0,i.assert)(t.length>0,`Can't make Distinct ouf of nothing`),new H(g(e.mk_distinct(f,t.map(e=>(e=A(e),p(e),e.ast)))))}function pt(t,n){return p(n),b(g(e.mk_const(f,_(t),n.ptr)))}function mt(e,t){return p(t),typeof e==`string`&&(e=e.split(` `)),e.map(e=>pt(e,t))}function ht(t,n=`c`){return p(t),b(e.mk_fresh_const(t.ctx.ptr,n,t.ptr))}function gt(t,n){return p(n),b(e.mk_bound(n.ctx.ptr,t,n.ptr))}function _t(t,n){return t=A(t),n=A(n),p(t,n),new H(g(e.mk_implies(f,t.ptr,n.ptr)))}function vt(t,n){return t=A(t),n=A(n),p(t,n),new H(g(e.mk_iff(f,t.ptr,n.ptr)))}function yt(e,t){return e=A(e),t=A(t),p(e,t),e.eq(t)}function bt(t,n){return t=A(t),n=A(n),p(t,n),new H(g(e.mk_xor(f,t.ptr,n.ptr)))}function xt(t){return typeof t==`boolean`&&(t=A(t)),p(t),O(t)?new cr(g(e.probe_not(f,t.ptr))):new H(g(e.mk_not(f,t.ptr)))}function St(...t){if(t.length==1&&t[0]instanceof $.AstVector&&(t=[...t[0].values()],(0,i.assert)((0,i.allSatisfy)(t,me)??!0,`AstVector containing not bools`)),(0,i.allSatisfy)(t,O)??!1)return ae(e.probe_and,t);{let n=t.map(A);return p(...n),new H(g(e.mk_and(f,n.map(e=>e.ptr))))}}function Ct(...t){if(t.length==1&&t[0]instanceof $.AstVector&&(t=[...t[0].values()],(0,i.assert)((0,i.allSatisfy)(t,me)??!0,`AstVector containing not bools`)),(0,i.allSatisfy)(t,O)??!1)return ae(e.probe_or,t);{let n=t.map(A);return p(...n),new H(g(e.mk_or(f,n.map(e=>e.ptr))))}}function wt(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new H(g(e.mk_pbeq(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 H(g(e.mk_pbge(f,t.map(e=>e.ast),n,r)))}function Et(t,n,r){if(p(...t),t.length!==n.length)throw Error(`Number of arguments and coefficients must match`);return new H(g(e.mk_pble(f,t.map(e=>e.ast),n,r)))}function Dt(t,n){return p(...t),new H(g(e.mk_atmost(f,t.map(e=>e.ast),n)))}function Ot(t,n){return p(...t),new H(g(e.mk_atleast(f,t.map(e=>e.ast),n)))}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,!0,r,_(``),_(``),t.map(e=>e.ptr),[],[],n.ptr)))}function At(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 jt(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 Mt(t){return t=A(t),p(t),(0,i.assert)(Te(t),`Int expression expected`),new W(g(e.mk_int2real(f,t.ast)))}function Nt(t){return C(t)||(t=P.val(t)),p(t),(0,i.assert)(Oe(t),`Real expression expected`),new W(g(e.mk_real2int(f,t.ast)))}function Pt(t){return C(t)||(t=P.val(t)),p(t),(0,i.assert)(Oe(t),`Real expression expected`),new H(g(e.mk_is_int(f,t.ast)))}function Ft(e){return C(e)||(e=P.val(e)),e.pow(`1/2`)}function It(e){return C(e)||(e=P.val(e)),e.pow(`1/3`)}function Lt(t,n){return p(t),new W(g(e.mk_bv2int(f,t.ast,n)))}function Rt(t,n){return T(t)?(0,i.assert)(Te(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 K(g(e.mk_int2bv(f,n,t.ast)))}function zt(...t){return p(...t),t.reduce((t,n)=>new K(g(e.mk_concat(f,t.ast,n.ast))))}function Bt(t,n,r){return p(t,n,r),new U(g(e.tactic_cond(f,t.ptr,n.ptr,r.ptr)))}function R(e){return typeof e==`string`?new U(e):e}function Vt(t,n,...r){let i=R(t),a=R(n);p(i,a),i=new U(g(e.tactic_and_then(f,i.ptr,a.ptr)));for(let t of r)a=R(t),p(i,a),i=new U(g(e.tactic_and_then(f,i.ptr,a.ptr)));return i}function Ht(t,n,...r){let i=R(t),a=R(n);p(i,a),i=new U(g(e.tactic_or_else(f,i.ptr,a.ptr)));for(let t of r)a=R(t),p(i,a),i=new U(g(e.tactic_or_else(f,i.ptr,a.ptr)));return i}function Ut(t,n){let r=R(t);p(r);let i=n===void 0?4294967295:n;return new U(g(e.tactic_repeat(f,r.ptr,i)))}function Wt(t,n){let r=R(t);return p(r),new U(g(e.tactic_try_for(f,r.ptr,n)))}function Gt(t,n){let r=R(n);return p(t,r),new U(g(e.tactic_when(f,t.ptr,r.ptr)))}function Kt(){return new U(g(e.tactic_skip(f)))}function qt(){return new U(g(e.tactic_fail(f)))}function Jt(t){return p(t),new U(g(e.tactic_fail_if(f,t.ptr)))}function Yt(...t){(0,i.assert)(t.length>0,`ParOr requires at least one tactic`);let n=t.map(e=>R(e));p(...n);let r=n.map(e=>e.ptr);return new U(g(e.tactic_par_or(f,r)))}function Xt(t,n){let r=R(t),i=R(n);return p(r,i),new U(g(e.tactic_par_and_then(f,r.ptr,i.ptr)))}function Zt(t,n){let r=R(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 U(g(e.tactic_using_params(f,r.ptr,i)))}finally{e.params_dec_ref(f,i)}}function Qt(t,n){return new H(g(e.mk_lt(f,t.ast,t.sort.cast(n).ast)))}function $t(t,n){return new H(g(e.mk_gt(f,t.ast,t.sort.cast(n).ast)))}function en(t,n){return new H(g(e.mk_le(f,t.ast,t.sort.cast(n).ast)))}function tn(t,n){return new H(g(e.mk_ge(f,t.ast,t.sort.cast(n).ast)))}function nn(t,n){return new H(g(e.mk_bvult(f,t.ast,t.sort.cast(n).ast)))}function rn(t,n){return new H(g(e.mk_bvugt(f,t.ast,t.sort.cast(n).ast)))}function an(t,n){return new H(g(e.mk_bvule(f,t.ast,t.sort.cast(n).ast)))}function on(t,n){return new H(g(e.mk_bvuge(f,t.ast,t.sort.cast(n).ast)))}function sn(t,n){return new H(g(e.mk_bvslt(f,t.ast,t.sort.cast(n).ast)))}function cn(t,n){return new H(g(e.mk_bvsgt(f,t.ast,t.sort.cast(n).ast)))}function ln(t,n){return new H(g(e.mk_bvsle(f,t.ast,t.sort.cast(n).ast)))}function un(t,n){return new H(g(e.mk_bvsge(f,t.ast,t.sort.cast(n).ast)))}function dn(t,n,r){return new K(g(e.mk_extract(f,t,n,r.ast)))}function fn(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 pn(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 mn(t,n){return b(g(e.mk_array_ext(f,t.ast,n.ast)))}function hn(...t){return new X(g(e.mk_set_union(f,t.map(e=>e.ast))))}function gn(...t){return new X(g(e.mk_set_intersect(f,t.map(e=>e.ast))))}function _n(t,n){return new X(g(e.mk_set_difference(f,t.ast,n.ast)))}function vn(t,n){let r=t.elemSort().cast(n);return new X(g(e.mk_set_add(f,t.ast,r.ast)))}function yn(t,n){let r=t.elemSort().cast(n);return new X(g(e.mk_set_del(f,t.ast,r.ast)))}function bn(t){return new X(g(e.mk_set_complement(f,t.ast)))}function xn(t){return new X(g(e.mk_empty_set(f,t.ptr)))}function Sn(t){return new X(g(e.mk_full_set(f,t.ptr)))}function Cn(t,n){let r=n.elemSort().cast(t);return new H(g(e.mk_set_member(f,r.ast,n.ast)))}function wn(t,n){return new H(g(e.mk_set_subset(f,t.ast,n.ast)))}function Tn(t,n){let r=D(t)?t:I.val(t);return new H(g(e.mk_seq_in_re(f,r.ast,n.ast)))}function En(...t){if(t.length===0)throw Error(`Union requires at least one argument`);return t.length===1?t[0]:new Y(g(e.mk_re_union(f,t.map(e=>e.ast))))}function Dn(...t){if(t.length===0)throw Error(`Intersect requires at least one argument`);return t.length===1?t[0]:new Y(g(e.mk_re_intersect(f,t.map(e=>e.ast))))}function On(...t){if(t.length===0)throw Error(`ReConcat requires at least one argument`);return t.length===1?t[0]:new Y(g(e.mk_re_concat(f,t.map(e=>e.ast))))}function kn(t){return new Y(g(e.mk_re_plus(f,t.ast)))}function An(t){return new Y(g(e.mk_re_star(f,t.ast)))}function jn(t){return new Y(g(e.mk_re_option(f,t.ast)))}function Mn(t){return new Y(g(e.mk_re_complement(f,t.ast)))}function Nn(t,n){return new Y(g(e.mk_re_diff(f,t.ast,n.ast)))}function Pn(t,n){let r=D(t)?t:I.val(t),i=D(n)?n:I.val(n);return new Y(g(e.mk_re_range(f,r.ast,i.ast)))}function Fn(t,n,r=0){return new Y(g(e.mk_re_loop(f,t.ast,n,r)))}function In(t,n){return new Y(g(e.mk_re_power(f,t.ast,n)))}function Ln(t){return new Y(g(e.mk_re_allchar(f,t.ptr)))}function Rn(t){return new Y(g(e.mk_re_empty(f,t.ptr)))}function zn(t){return new Y(g(e.mk_re_full(f,t.ptr)))}function Bn(t,n){return new B(g(e.mk_partial_order(f,t.ptr,n)))}function Vn(t,n){return new B(g(e.mk_linear_order(f,t.ptr,n)))}function Hn(t,n){return new B(g(e.mk_piecewise_linear_order(f,t.ptr,n)))}function Un(t,n){return new B(g(e.mk_tree_order(f,t.ptr,n)))}function Wn(t){return new B(g(e.mk_transitive_closure(f,t.ptr)))}function Gn(t){return new V(g(e.mk_char(f,t)))}function Kn(t,n){return new H(g(e.mk_char_le(f,t.ast,n.ast)))}function qn(t){return new W(g(e.mk_char_to_int(f,t.ast)))}function Jn(t){return new V(g(e.mk_char_to_bv(f,t.ast)))}function Yn(t){return new V(g(e.mk_char_from_bv(f,t.ast)))}function Xn(t){return new H(g(e.mk_char_is_digit(f,t.ast)))}async function Zn(t,n,r){let i=await e.polynomial_subresultants(f,t.ast,n.ast,r.ast);return new Q(g(i))}class Qn{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 $n{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 nr(g(e.solver_get_model(f,this.ptr)))}statistics(){return new rr(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 er{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 nr(g(e.optimize_get_model(f,this.ptr)))}statistics(){return new rr(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 tr{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 rr(g(e.fixedpoint_get_statistics(f,this.ptr)))}release(){e.fixedpoint_dec_ref(f,this.ptr),this._ptr=null,c.unregister(this)}}class nr{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 B(g(e.model_get_const_decl(f,this.ptr,t))):new B(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 ar(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 ar(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 rr{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 ir{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 ar{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 ir(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 z extends Qn{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 B extends Qn{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 z(g(e.get_decl_sort_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_AST:r.push(new V(g(e.get_decl_ast_parameter(f,this.ptr,a))));break;case n.Z3_parameter_kind.Z3_PARAMETER_FUNC_DECL:r.push(new B(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 V extends Qn{get sort(){return y(e.get_sort(f,this.ast))}eq(t){return new H(g(e.mk_eq(f,this.ast,A(t).ast)))}neq(t){return new H(g(e.mk_distinct(f,[this,t].map(e=>A(e).ast))))}name(){return this.decl().name()}params(){return this.decl().params()}decl(){return(0,i.assert)(x(this),`Z3 application expected`),new B(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 or{constructor(e){this.ptr=e,this.ctx=$}}class sr extends z{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 hr}}class H extends V{not(){return xt(this)}and(e){return St(this,e)}or(e){return Ct(this,e)}xor(e){return bt(this,e)}implies(e){return _t(this,e)}iff(e){return vt(this,e)}}class cr{constructor(e){this.ptr=e,this.ctx=$}apply(t){return p(t),e.probe_apply(f,this.ptr,t.ptr)}}class lr{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(lr.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=me(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 H(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 nr(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 St(...t)}}toString(){return e.goal_to_string(f,this.ptr)}dimacs(t=!0){return e.goal_to_dimacs_string(f,this.ptr,t)}}class ur{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 lr.fromPtr(n)}toString(){return e.apply_result_to_string(f,this.ptr)}}let dr={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 U{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;me(t)?(n=new lr,n.add(t)):n=t,p(n);let r=await e.tactic_apply(f,this.ptr,n.ptr),i=new ur(g(r));return new Proxy(i,dr)}solver(){let t=g(e.mk_solver_from_tactic(f,this.ptr));return new $n(t)}help(){return e.tactic_get_help(f,this.ptr)}paramDescrs(){let t=g(e.tactic_get_param_descrs(f,this.ptr));return new pr(t)}usingParams(t){p(t);let n=g(e.tactic_using_params(f,this.ptr,t.ptr));return new U(n)}}class fr{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 pr{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 mr{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 pr(t)}usingParams(t){p(t);let n=g(e.simplifier_using_params(f,this.ptr,t.ptr));return new mr(n)}andThen(t){p(t);let n=g(e.simplifier_and_then(f,this.ptr,t.ptr));return new mr(n)}}class hr extends z{cast(e){let t=De(this)?`IntSort`:`RealSort`;if(C(e)){let n=e.sort;if(T(e)){if(this.eqIdentity(n))return e;if(De(n)&&Ae(this))return Mt(e);(0,i.assert)(!1,`Can't cast Real to IntSort without loss`)}else if(me(e))return De(this)?dt(e,1,0):Mt(dt(e,1,0));(0,i.assert)(!1,`Can't cast expression to ${t}`)}else{if(typeof e!=`boolean`)return De(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 gr(t,...n){if(t instanceof K){if(n.length!==1)throw Error(`BitVec add only supports 2 arguments`);return new K(g(e.mk_bvadd(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof W),new W(g(e.mk_add(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function _r(t,...n){if(t instanceof K){if(n.length!==1)throw Error(`BitVec sub only supports 2 arguments`);return new K(g(e.mk_bvsub(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof W),new W(g(e.mk_sub(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function vr(t,...n){if(t instanceof K){if(n.length!==1)throw Error(`BitVec mul only supports 2 arguments`);return new K(g(e.mk_bvmul(f,t.ast,t.sort.cast(n[0]).ast)))}return(0,i.assert)(t instanceof W),new W(g(e.mk_mul(f,[t.ast].concat(n.map(e=>t.sort.cast(e).ast)))))}function yr(t,n){return t instanceof K?new K(g(e.mk_bvsdiv(f,t.ast,t.sort.cast(n).ast))):((0,i.assert)(t instanceof W),new W(g(e.mk_div(f,t.ast,t.sort.cast(n).ast))))}function br(t,n){return new K(g(e.mk_bvudiv(f,t.ast,t.sort.cast(n).ast)))}function xr(t){return t instanceof K?new K(g(e.mk_bvneg(f,t.ast))):((0,i.assert)(t instanceof W),new W(g(e.mk_unary_minus(f,t.ast))))}function Sr(t,n){return t instanceof K?new K(g(e.mk_bvsrem(f,t.ast,t.sort.cast(n).ast))):((0,i.assert)(t instanceof W),new W(g(e.mk_mod(f,t.ast,t.sort.cast(n).ast))))}class W extends V{add(e){return gr(this,e)}mul(e){return vr(this,e)}sub(e){return _r(this,e)}pow(t){return new W(g(e.mk_power(f,this.ast,this.sort.cast(t).ast)))}div(e){return yr(this,e)}mod(e){return Sr(this,e)}neg(){return xr(this)}le(e){return en(this,e)}lt(e){return Qt(this,e)}gt(e){return $t(this,e)}ge(e){return tn(this,e)}}class Cr extends W{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 wr extends W{value(){return{numerator:this.numerator().value(),denominator:this.denominator().value()}}numerator(){return new Cr(e.get_numerator(f,this.ast))}denominator(){return new Cr(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 G{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 G(g(e.rcf_add(f,this.ptr,t.ptr)))}sub(t){return p(t),new G(g(e.rcf_sub(f,this.ptr,t.ptr)))}mul(t){return p(t),new G(g(e.rcf_mul(f,this.ptr,t.ptr)))}div(t){return p(t),new G(g(e.rcf_div(f,this.ptr,t.ptr)))}neg(){return new G(g(e.rcf_neg(f,this.ptr)))}inv(){return new G(g(e.rcf_inv(f,this.ptr)))}power(t){return new G(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 Tr extends z{size(){return e.get_bv_sort_size(f,this.ptr)}subsort(e){return Me(e)&&this.size()<e.size()}cast(e){return C(e)?(p(e),e):((0,i.assert)(!s(e),`Can't convert rational to BitVec`),rt.val(e,this.size()))}}class K extends V{size(){return this.sort.size()}add(e){return gr(this,e)}mul(e){return vr(this,e)}sub(e){return _r(this,e)}sdiv(e){return yr(this,e)}udiv(e){return br(this,e)}smod(e){return Sr(this,e)}urem(t){return new K(g(e.mk_bvurem(f,this.ast,this.sort.cast(t).ast)))}srem(t){return new K(g(e.mk_bvsrem(f,this.ast,this.sort.cast(t).ast)))}neg(){return xr(this)}or(t){return new K(g(e.mk_bvor(f,this.ast,this.sort.cast(t).ast)))}and(t){return new K(g(e.mk_bvand(f,this.ast,this.sort.cast(t).ast)))}nand(t){return new K(g(e.mk_bvnand(f,this.ast,this.sort.cast(t).ast)))}xor(t){return new K(g(e.mk_bvxor(f,this.ast,this.sort.cast(t).ast)))}xnor(t){return new K(g(e.mk_bvxnor(f,this.ast,this.sort.cast(t).ast)))}shr(t){return new K(g(e.mk_bvashr(f,this.ast,this.sort.cast(t).ast)))}lshr(t){return new K(g(e.mk_bvlshr(f,this.ast,this.sort.cast(t).ast)))}shl(t){return new K(g(e.mk_bvshl(f,this.ast,this.sort.cast(t).ast)))}rotateRight(t){return new K(g(e.mk_ext_rotate_right(f,this.ast,this.sort.cast(t).ast)))}rotateLeft(t){return new K(g(e.mk_ext_rotate_left(f,this.ast,this.sort.cast(t).ast)))}not(){return new K(g(e.mk_bvnot(f,this.ast)))}extract(e,t){return dn(e,t,this)}signExt(t){return new K(g(e.mk_sign_ext(f,t,this.ast)))}zeroExt(t){return new K(g(e.mk_zero_ext(f,t,this.ast)))}repeat(t){return new K(g(e.mk_repeat(f,t,this.ast)))}sle(e){return ln(this,e)}ule(e){return an(this,e)}slt(e){return sn(this,e)}ult(e){return nn(this,e)}sge(e){return un(this,e)}uge(e){return on(this,e)}sgt(e){return cn(this,e)}ugt(e){return rn(this,e)}redAnd(){return new K(g(e.mk_bvredand(f,this.ast)))}redOr(){return new K(g(e.mk_bvredor(f,this.ast)))}addNoOverflow(t,n){return new H(g(e.mk_bvadd_no_overflow(f,this.ast,this.sort.cast(t).ast,n)))}addNoUnderflow(t){return new H(g(e.mk_bvadd_no_underflow(f,this.ast,this.sort.cast(t).ast)))}subNoOverflow(t){return new H(g(e.mk_bvsub_no_overflow(f,this.ast,this.sort.cast(t).ast)))}subNoUnderflow(t,n){return new H(g(e.mk_bvsub_no_underflow(f,this.ast,this.sort.cast(t).ast,n)))}sdivNoOverflow(t){return new H(g(e.mk_bvsdiv_no_overflow(f,this.ast,this.sort.cast(t).ast)))}mulNoOverflow(t,n){return new H(g(e.mk_bvmul_no_overflow(f,this.ast,this.sort.cast(t).ast,n)))}mulNoUnderflow(t){return new H(g(e.mk_bvmul_no_underflow(f,this.ast,this.sort.cast(t).ast)))}negNoOverflow(){return new H(g(e.mk_bvneg_no_overflow(f,this.ast)))}}class Er extends K{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 Dr extends z{cast(e){if(ze(e))return p(e),e;throw Error(`Can't cast to FPRMSort`)}}class Or extends V{}class kr extends z{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 F.val(e,this);throw Error(`Can't cast to FPSort`)}}class q extends V{add(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_add(f,t.ast,this.ast,r.ast)))}sub(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_sub(f,t.ast,this.ast,r.ast)))}mul(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_mul(f,t.ast,this.ast,r.ast)))}div(t,n){let r=E(n)?n:F.val(n,this.sort);return new q(g(e.mk_fpa_div(f,t.ast,this.ast,r.ast)))}neg(){return new q(g(e.mk_fpa_neg(f,this.ast)))}abs(){return new q(g(e.mk_fpa_abs(f,this.ast)))}sqrt(t){return new q(g(e.mk_fpa_sqrt(f,t.ast,this.ast)))}rem(t){let n=E(t)?t:F.val(t,this.sort);return new q(g(e.mk_fpa_rem(f,this.ast,n.ast)))}fma(t,n,r){let i=E(n)?n:F.val(n,this.sort),a=E(r)?r:F.val(r,this.sort);return new q(g(e.mk_fpa_fma(f,t.ast,this.ast,i.ast,a.ast)))}lt(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_lt(f,this.ast,n.ast)))}gt(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_gt(f,this.ast,n.ast)))}le(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_leq(f,this.ast,n.ast)))}ge(t){let n=E(t)?t:F.val(t,this.sort);return new H(g(e.mk_fpa_geq(f,this.ast,n.ast)))}isNaN(){return new H(g(e.mk_fpa_is_nan(f,this.ast)))}isInf(){return new H(g(e.mk_fpa_is_infinite(f,this.ast)))}isZero(){return new H(g(e.mk_fpa_is_zero(f,this.ast)))}isNormal(){return new H(g(e.mk_fpa_is_normal(f,this.ast)))}isSubnormal(){return new H(g(e.mk_fpa_is_subnormal(f,this.ast)))}isNegative(){return new H(g(e.mk_fpa_is_negative(f,this.ast)))}isPositive(){return new H(g(e.mk_fpa_is_positive(f,this.ast)))}toIEEEBV(){return new K(g(e.mk_fpa_to_ieee_bv(f,this.ast)))}toReal(){return new W(g(e.mk_fpa_to_real(f,this.ast)))}}class Ar extends q{value(){return e.get_numeral_double(f,this.ast)}}class jr extends z{isString(){return e.is_string_sort(f,this.ptr)}basis(){return y(g(e.get_seq_sort_basis(f,this.ptr)))}cast(e){if(D(e))return p(e),e;if(typeof e==`string`)return I.val(e);throw Error(`Can't cast to SeqSort`)}}class J extends V{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=D(t)?t:I.val(t);return new J(g(e.mk_seq_concat(f,[this.ast,n.ast])))}length(){return new W(g(e.mk_seq_length(f,this.ast)))}at(t){let n=T(t)?t:N.val(t);return new J(g(e.mk_seq_at(f,this.ast,n.ast)))}nth(t){let n=T(t)?t:N.val(t);return b(g(e.mk_seq_nth(f,this.ast,n.ast)))}extract(t,n){let r=T(t)?t:N.val(t),i=T(n)?n:N.val(n);return new J(g(e.mk_seq_extract(f,this.ast,r.ast,i.ast)))}indexOf(t,n){let r=D(t)?t:I.val(t),i=n===void 0?N.val(0):T(n)?n:N.val(n);return new W(g(e.mk_seq_index(f,this.ast,r.ast,i.ast)))}lastIndexOf(t){let n=D(t)?t:I.val(t);return new W(g(e.mk_seq_last_index(f,this.ast,n.ast)))}contains(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_seq_contains(f,this.ast,n.ast)))}prefixOf(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_seq_prefix(f,this.ast,n.ast)))}suffixOf(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_seq_suffix(f,this.ast,n.ast)))}replace(t,n){let r=D(t)?t:I.val(t),i=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace(f,this.ast,r.ast,i.ast)))}replaceAll(t,n){let r=D(t)?t:I.val(t),i=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace_all(f,this.ast,r.ast,i.ast)))}replaceRe(t,n){let r=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace_re(f,this.ast,t.ast,r.ast)))}replaceReAll(t,n){let r=D(n)?n:I.val(n);return new J(g(e.mk_seq_replace_re_all(f,this.ast,t.ast,r.ast)))}toInt(){return new W(g(e.mk_str_to_int(f,this.ast)))}toCode(){return new W(g(e.mk_string_to_code(f,this.ast)))}lt(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_str_lt(f,this.ast,n.ast)))}le(t){let n=D(t)?t:I.val(t);return new H(g(e.mk_str_le(f,this.ast,n.ast)))}map(t){return new J(g(e.mk_seq_map(f,t.ast,this.ast)))}mapi(t,n){let r=T(n)?n:N.val(n);return new J(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=T(n)?n:N.val(n);return b(g(e.mk_seq_foldli(f,t.ast,i.ast,r.ast,this.ast)))}}class Mr extends z{basis(){return y(g(e.get_re_sort_basis(f,this.ptr)))}cast(e){if(Ue(e))return p(e),e;throw Error(`Can't cast to ReSort`)}}class Y extends V{plus(){return new Y(g(e.mk_re_plus(f,this.ast)))}star(){return new Y(g(e.mk_re_star(f,this.ast)))}option(){return new Y(g(e.mk_re_option(f,this.ast)))}complement(){return new Y(g(e.mk_re_complement(f,this.ast)))}union(t){return new Y(g(e.mk_re_union(f,[this.ast,t.ast])))}intersect(t){return new Y(g(e.mk_re_intersect(f,[this.ast,t.ast])))}diff(t){return new Y(g(e.mk_re_diff(f,this.ast,t.ast)))}concat(t){return new Y(g(e.mk_re_concat(f,[this.ast,t.ast])))}loop(t,n=0){return new Y(g(e.mk_re_loop(f,this.ast,t,n)))}power(t){return new Y(g(e.mk_re_power(f,this.ast,t)))}}class Nr extends z{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 Pr extends V{domain(){return this.sort.domain()}domain_n(e){return this.sort.domain_n(e)}range(){return this.sort.range()}select(...e){return fn(this,...e)}store(...e){return pn(this,...e)}default(){return b(g(e.mk_array_default(f,this.ast)))}}class X extends V{elemSort(){return this.sort.domain()}union(...e){return hn(this,...e)}intersect(...e){return gn(this,...e)}diff(e){return _n(this,e)}add(e){return vn(this,e)}del(e){return yn(this,e)}complement(){return bn(this)}contains(e){return Cn(e,this)}subsetOf(e){return wn(this,e)}}class Fr extends z{elemSort(){return y(g(e.get_finite_set_sort_basis(f,this.ptr)))}cast(e){return p(e),e}}class Z extends V{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 H(g(e.mk_finite_set_member(f,t.ast,this.ast)))}size(){return new V(g(e.mk_finite_set_size(f,this.ast)))}subsetOf(t){return new H(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 z{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 B(n)}recognizer(t){let n=e.get_datatype_sort_recognizer(f,this.ptr,t);return new B(n)}accessor(t,n){let r=e.get_datatype_sort_constructor_accessor(f,this.ptr,t,n);return new B(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 V{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 or(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 xt(this)}and(e){return St(this,e)}or(e){return Ct(this,e)}xor(e){return bt(this,e)}implies(e){return _t(this,e)}iff(e){return vt(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 fn(this,...e)}store(...e){return pn(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:$n,Optimize:er,Fixedpoint:tr,Model:nr,Tactic:U,Goal:lr,Params:fr,Simplifier:mr,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:me,isTrue:he,isFalse:ge,isAnd:_e,isOr:ve,isImplies:ye,isNot:be,isEq:xe,isDistinct:Se,isQuantifier:Ce,isArith:T,isArithSort:we,isInt:Te,isIntVal:Ee,isIntSort:De,isReal:Oe,isRealVal:ke,isRealSort:Ae,isRCFNum:je,isBitVecSort:Me,isBitVec:Ne,isBitVecVal:Pe,isFPRMSort:Re,isFPRM:ze,isFPSort:Be,isFP:E,isFPVal:Ve,isSeqSort:He,isSeq:D,isStringSort:We,isString:Ge,isFiniteSetSort:Ke,isFiniteSet:qe,isArraySort:Fe,isArray:Ie,isConstArray:Le,isProbe:O,isTactic:k,isGoal:Je,isAstVector:Ye,eqIdentity:Xe,getVarIndex:Ze,from:A,solve:Qe,Sort:et,Function:tt,RecFunc:j,Bool:M,Int:N,Real:P,RCFNum:nt,BitVec:rt,Float:F,FloatRM:it,String:I,Seq:at,Re:ot,Array:st,Set:ct,FiniteSet:L,Datatype:lt,TypeVariable:ut,If:dt,Distinct:ft,Const:pt,Consts:mt,FreshConst:ht,Var:gt,Implies:_t,Iff:vt,Eq:yt,Xor:bt,Not:xt,And:St,Or:Ct,PbEq:wt,PbGe:Tt,PbLe:Et,AtMost:Dt,AtLeast:Ot,ForAll:kt,Exists:At,Lambda:jt,ToReal:Mt,ToInt:Nt,IsInt:Pt,Sqrt:Ft,Cbrt:It,BV2Int:Lt,Int2BV:Rt,Concat:zt,Cond:Bt,AndThen:Vt,OrElse:Ht,Repeat:Ut,TryFor:Wt,When:Gt,Skip:Kt,Fail:qt,FailIf:Jt,ParOr:Yt,ParAndThen:Xt,With:Zt,LT:Qt,GT:$t,LE:en,GE:tn,ULT:nn,UGT:rn,ULE:an,UGE:on,SLT:sn,SGT:cn,SLE:ln,SGE:un,Sum:gr,Sub:_r,Product:vr,Div:yr,BUDiv:br,Neg:xr,Mod:Sr,Select:fn,Store:pn,Ext:mn,Extract:dn,substitute:Wr,substituteVars:Gr,substituteFuns:Kr,updateField:qr,simplify:$e,ast_from_string:Jr,SetUnion:hn,SetIntersect:gn,SetDifference:_n,SetAdd:vn,SetDel:yn,SetComplement:bn,EmptySet:xn,FullSet:Sn,isMember:Cn,isSubset:wn,InRe:Tn,Union:En,Intersect:Dn,ReConcat:On,Plus:kn,Star:An,Option:jn,Complement:Mn,Diff:Nn,Range:Pn,Loop:Fn,Power:In,AllChar:Ln,Empty:Rn,Full:zn,mkPartialOrder:Bn,mkLinearOrder:Vn,mkPiecewiseLinearOrder:Hn,mkTreeOrder:Un,mkTransitiveClosure:Wn,mkChar:Gn,mkCharLe:Kn,mkCharToInt:qn,mkCharToBV:Jn,mkCharFromBV:Yn,mkCharIsDigit:Xn,polynomialSubresultants:Zn};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}}})),Xe=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(Ye(),e),n(k(),e)})),Ze=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=Xe(),i=O();n(k(),e),n(Ke(),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}}})),A=null,Qe=null,$e=null,et=null,tt=new WeakMap;function j(e,t){if(e.error)return;let n=t instanceof Error?t:Error(`[WaSHI] Z3 internal worker error: ${typeof t==`object`&&t&&`message`in t?String(t.message):String(t)}`);e.error=n;for(let t of e.asyncRejects)t(n);e.asyncRejects.clear(),et===e&&F();try{e.instance?.em?.PThread?.terminateAllThreads()}catch{}e.bootstrapUrl&&URL.revokeObjectURL(e.bootstrapUrl);for(let t of Array.from(e.errorHandlers))try{t(n)}catch{}e.errorHandlers.clear()}function M(e,t){if(!e||e.__washi_async_call_hooked)return;e.__washi_async_call_hooked=!0;let n=e.async_call;typeof n==`function`&&(e.async_call=function(e,...r){if(t.error)return Promise.reject(t.error);let i,a=new Promise((e,n)=>{i=n,t.asyncRejects.add(n)});a.catch(()=>{});try{let o=n.call(this,e,...r);return Promise.race([o,a]).finally(()=>{t.asyncRejects.delete(i)})}catch(e){throw t.asyncRejects.delete(i),j(t,e),e}})}function N(e,t){let n=t?tt.get(t):et;return n?n.error?(e(n.error),()=>{}):(n.errorHandlers.add(e),()=>{n.errorHandlers.delete(e)}):()=>{}}function P(e){et&&j(et,e)}function nt(e,t){if(!e||!e.PThread||e.PThread.__washi_monitored)return;e.PThread.__washi_monitored=!0;let n=e=>{e&&(e.onerror=e=>{j(t,e)},typeof e.addEventListener==`function`&&e.addEventListener(`error`,e=>{j(t,e),typeof e.preventDefault==`function`&&e.preventDefault()}))};Array.isArray(e.PThread.unusedWorkers)&&e.PThread.unusedWorkers.forEach(n),Array.isArray(e.PThread.runningWorkers)&&e.PThread.runningWorkers.forEach(n);let r=e.PThread.loadWasmModuleToWorker;typeof r==`function`&&(e.PThread.loadWasmModuleToWorker=function(e){try{let n=r.call(this,e);return e.onerror=e=>{j(t,e)},n}catch(e){throw j(t,e),e}});let i=e.PThread.allocateUnusedWorker;typeof i==`function`&&(e.PThread.allocateUnusedWorker=function(){try{i.call(this);let e=this.unusedWorkers?.[this.unusedWorkers.length-1];e&&n(e)}catch(e){throw j(t,e),e}})}function rt(e){e.jsUrl!==void 0&&(Qe=e.jsUrl),e.wasmUrl!==void 0&&($e=e.wasmUrl),F()}function F(){A=null,et=null}function it(){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
|