@cortex-js/compute-engine 0.57.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/README.md +4 -0
  2. package/dist/compile.esm.js +2376 -501
  3. package/dist/compile.min.esm.js +316 -68
  4. package/dist/compile.min.umd.cjs +316 -68
  5. package/dist/compile.umd.cjs +2376 -501
  6. package/dist/compute-engine.esm.js +15717 -12444
  7. package/dist/compute-engine.min.esm.js +331 -83
  8. package/dist/compute-engine.min.umd.cjs +330 -82
  9. package/dist/compute-engine.umd.cjs +15717 -12444
  10. package/dist/core.esm.js +15716 -12443
  11. package/dist/core.min.esm.js +329 -81
  12. package/dist/core.min.umd.cjs +329 -81
  13. package/dist/core.umd.cjs +15716 -12443
  14. package/dist/identities.esm.js +1921 -0
  15. package/dist/identities.min.esm.js +2 -0
  16. package/dist/identities.min.umd.cjs +4 -0
  17. package/dist/identities.umd.cjs +1946 -0
  18. package/dist/interval.esm.js +779 -339
  19. package/dist/interval.min.esm.js +8 -8
  20. package/dist/interval.min.umd.cjs +8 -8
  21. package/dist/interval.umd.cjs +779 -339
  22. package/dist/latex-syntax.esm.js +971 -608
  23. package/dist/latex-syntax.min.esm.js +7 -7
  24. package/dist/latex-syntax.min.umd.cjs +7 -7
  25. package/dist/latex-syntax.umd.cjs +971 -608
  26. package/dist/math-json.esm.js +8 -12
  27. package/dist/math-json.min.esm.js +2 -2
  28. package/dist/math-json.min.umd.cjs +2 -2
  29. package/dist/math-json.umd.cjs +8 -12
  30. package/dist/numerics.esm.js +1382 -226
  31. package/dist/numerics.min.esm.js +16 -5
  32. package/dist/numerics.min.umd.cjs +16 -5
  33. package/dist/numerics.umd.cjs +1382 -226
  34. package/dist/types/big-decimal/big-decimal.d.ts +1 -1
  35. package/dist/types/big-decimal/index.d.ts +1 -1
  36. package/dist/types/big-decimal/transcendentals.d.ts +1 -1
  37. package/dist/types/big-decimal/utils.d.ts +1 -1
  38. package/dist/types/common/ansi-codes.d.ts +1 -1
  39. package/dist/types/common/configuration-change.d.ts +1 -1
  40. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  41. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  42. package/dist/types/common/interruptible.d.ts +1 -1
  43. package/dist/types/common/one-of.d.ts +1 -1
  44. package/dist/types/common/signals.d.ts +1 -1
  45. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  46. package/dist/types/common/type/boxed-type.d.ts +1 -1
  47. package/dist/types/common/type/lexer.d.ts +1 -1
  48. package/dist/types/common/type/parse.d.ts +1 -208
  49. package/dist/types/common/type/parser.d.ts +124 -2
  50. package/dist/types/common/type/primitive.d.ts +5 -1
  51. package/dist/types/common/type/reduce.d.ts +1 -1
  52. package/dist/types/common/type/serialize.d.ts +1 -1
  53. package/dist/types/common/type/subtype.d.ts +18 -1
  54. package/dist/types/common/type/type-builder.d.ts +1 -1
  55. package/dist/types/common/type/types.d.ts +1 -1
  56. package/dist/types/common/type/utils.d.ts +1 -1
  57. package/dist/types/common/utils.d.ts +1 -1
  58. package/dist/types/compile.d.ts +1 -1
  59. package/dist/types/compute-engine/assume.d.ts +13 -6
  60. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +3 -1
  61. package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
  62. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
  63. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
  64. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
  65. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
  66. package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
  67. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  68. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
  69. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  70. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +7 -1
  71. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  72. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  73. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +3 -3
  74. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
  75. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
  76. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  77. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
  78. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
  79. package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
  80. package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
  81. package/dist/types/compute-engine/boxed-expression/constraint-subject.d.ts +140 -0
  82. package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
  83. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  84. package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
  85. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
  86. package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
  87. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +34 -12
  88. package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
  89. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
  90. package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
  91. package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
  92. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
  93. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  94. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
  95. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
  96. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
  97. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
  98. package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +112 -0
  99. package/dist/types/compute-engine/boxed-expression/rules.d.ts +2 -1
  100. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  101. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
  102. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
  103. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
  104. package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
  105. package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
  106. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
  107. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
  108. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  109. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  110. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  111. package/dist/types/compute-engine/compilation/base-compiler.d.ts +8 -1
  112. package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
  113. package/dist/types/compute-engine/compilation/constant-folding.d.ts +16 -1
  114. package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
  115. package/dist/types/compute-engine/compilation/gpu-target.d.ts +58 -5
  116. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +4 -4
  117. package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
  118. package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
  119. package/dist/types/compute-engine/compilation/types.d.ts +1 -1
  120. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
  121. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  122. package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
  123. package/dist/types/compute-engine/engine-cache.d.ts +1 -1
  124. package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
  125. package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
  126. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
  127. package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
  128. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
  129. package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
  130. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
  131. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
  132. package/dist/types/compute-engine/engine-runtime-state.d.ts +4 -1
  133. package/dist/types/compute-engine/engine-scope.d.ts +1 -1
  134. package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
  135. package/dist/types/compute-engine/engine-simplification-rules.d.ts +10 -2
  136. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
  137. package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
  138. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
  139. package/dist/types/compute-engine/free-functions.d.ts +1 -1
  140. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  141. package/dist/types/compute-engine/fungrim/loader.d.ts +13 -0
  142. package/dist/types/compute-engine/fungrim/types.d.ts +160 -0
  143. package/dist/types/compute-engine/global-types.d.ts +1 -1
  144. package/dist/types/compute-engine/index.d.ts +63 -2
  145. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  146. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  147. package/dist/types/compute-engine/interval/elementary.d.ts +10 -2
  148. package/dist/types/compute-engine/interval/index.d.ts +2 -2
  149. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  150. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  151. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  152. package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
  153. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  154. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  155. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  156. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
  157. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  158. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  159. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  160. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  161. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  162. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  163. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  164. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  165. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  166. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  167. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
  168. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  169. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +4 -1
  170. package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
  171. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
  172. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  173. package/dist/types/compute-engine/latex-syntax/parse.d.ts +3 -2
  174. package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
  175. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -11
  176. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  177. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  178. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  179. package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
  180. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  181. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  182. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  183. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  184. package/dist/types/compute-engine/library/colors.d.ts +1 -1
  185. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  186. package/dist/types/compute-engine/library/complex.d.ts +13 -1
  187. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  188. package/dist/types/compute-engine/library/core.d.ts +1 -1
  189. package/dist/types/compute-engine/library/fractals.d.ts +1 -1
  190. package/dist/types/compute-engine/library/library.d.ts +1 -1
  191. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  192. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  193. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  194. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  195. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  196. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
  197. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  198. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  199. package/dist/types/compute-engine/library/sets.d.ts +27 -1
  200. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  201. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  202. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  203. package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
  204. package/dist/types/compute-engine/library/units.d.ts +1 -1
  205. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  206. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  207. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +7 -1
  208. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  209. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  210. package/dist/types/compute-engine/numerics/bernoulli.d.ts +39 -0
  211. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  212. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  213. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  214. package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
  215. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  216. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  217. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  218. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +12 -1
  219. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  220. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  221. package/dist/types/compute-engine/numerics/random.d.ts +23 -0
  222. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  223. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  224. package/dist/types/compute-engine/numerics/special-functions.d.ts +78 -10
  225. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  226. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  227. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  228. package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
  229. package/dist/types/compute-engine/oeis.d.ts +1 -1
  230. package/dist/types/compute-engine/sequence.d.ts +1 -1
  231. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  232. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  233. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  234. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  235. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  236. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  237. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  238. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  239. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
  240. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
  241. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  242. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  243. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  244. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  245. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  246. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  247. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  248. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  249. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  250. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  251. package/dist/types/compute-engine/tensor/tensors.d.ts +3 -3
  252. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  253. package/dist/types/compute-engine/types-engine.d.ts +52 -3
  254. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  255. package/dist/types/compute-engine/types-expression.d.ts +85 -14
  256. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +32 -1
  257. package/dist/types/compute-engine/types-kernel-serialization.d.ts +45 -3
  258. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  259. package/dist/types/compute-engine/types.d.ts +1 -1
  260. package/dist/types/compute-engine.d.ts +1 -1
  261. package/dist/types/core.d.ts +1 -1
  262. package/dist/types/identities.d.ts +3 -0
  263. package/dist/types/interval.d.ts +1 -1
  264. package/dist/types/latex-syntax.d.ts +2 -2
  265. package/dist/types/math-json/symbols.d.ts +1 -1
  266. package/dist/types/math-json/types.d.ts +1 -1
  267. package/dist/types/math-json/utils.d.ts +1 -1
  268. package/dist/types/math-json.d.ts +2 -2
  269. package/dist/types/numerics.d.ts +1 -1
  270. package/package.json +9 -3
@@ -1,11 +1,11 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { BigDecimal } from '../big-decimal';
3
3
  import { Type, TypeResolver, TypeString } from '../common/type/types';
4
4
  import { BoxedType } from '../common/type/boxed-type';
5
5
  import type { OneOf } from '../common/one-of';
6
6
  import type { ConfigurationChangeListener } from '../common/configuration-change';
7
7
  import type { MathJsonExpression, MathJsonSymbol, MathJsonNumberObject } from '../math-json/types';
8
- import type { ValueDefinition, OperatorDefinition, AngularUnit, AssignValue, AssumeResult, Expression, BoxedRule, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, Metadata, Rule, Scope, EvalContext, ExpressionInput, IComputeEngine, ILatexSyntax, BoxedDefinition, SymbolDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, LibraryDefinition, OperatorInfo } from './global-types';
8
+ import type { ValueDefinition, OperatorDefinition, AngularUnit, AssignValue, AssumeResult, Expression, BoxedRule, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, Metadata, Rule, RulePurpose, Scope, EvalContext, ExpressionInput, IComputeEngine, ILatexSyntax, BoxedDefinition, SymbolDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, LibraryDefinition, OperatorInfo, SymbolInfo } from './global-types';
9
9
  import type { LibraryCategory, ParseLatexOptions, SerializeLatexOptions } from './latex-syntax/types';
10
10
  import type { BigNum, Rational } from './numerics/types';
11
11
  import { ExactNumericValueData, NumericValue, NumericValueData } from './numeric-value/types';
@@ -92,6 +92,10 @@ export declare class ComputeEngine implements IComputeEngine {
92
92
  private _cost?;
93
93
  /** @internal Backing state for simplificationRules */
94
94
  private _simplificationRules;
95
+ /** @internal Backing state for solveRules */
96
+ private _solveRules;
97
+ /** @internal Backing state for harmonizationRules */
98
+ private _harmonizationRules;
95
99
  /** @internal Registry of compilation targets */
96
100
  private _compilationTargets;
97
101
  /** @internal Fu trigonometric simplification algorithm */
@@ -112,6 +116,8 @@ export declare class ComputeEngine implements IComputeEngine {
112
116
  get contextStack(): ReadonlyArray<EvalContext>;
113
117
  set contextStack(stack: ReadonlyArray<EvalContext>);
114
118
  /** @internal */
119
+ private __typeResolver;
120
+ /** @internal */
115
121
  get _typeResolver(): TypeResolver;
116
122
  /**
117
123
  * Declare a new type in the current scope.
@@ -259,6 +265,19 @@ export declare class ComputeEngine implements IComputeEngine {
259
265
  */
260
266
  get recursionLimit(): number;
261
267
  set recursionLimit(t: number);
268
+ /** Maximum number of elements a collection may have when materialized
269
+ * (converted from a lazy form to a `List`). Default: 10,000.
270
+ *
271
+ * When a materialization would exceed this size, the operation leaves
272
+ * the expression in its lazy form. Consumers can detect oversize
273
+ * collections via the symbolic form's `count`.
274
+ *
275
+ * Set to `Infinity` (or `0` / a negative number) to disable the cap.
276
+ *
277
+ * @experimental
278
+ */
279
+ get maxCollectionSize(): number;
280
+ set maxCollectionSize(t: number);
262
281
  /**
263
282
  * Flag to prevent infinite recursion in the verify/ask/equality checking cycle.
264
283
  *
@@ -432,12 +451,51 @@ export declare class ComputeEngine implements IComputeEngine {
432
451
  */
433
452
  get simplificationRules(): Rule[];
434
453
  set simplificationRules(rules: Rule[]);
454
+ /**
455
+ * The rules used by `solve()` to find roots of univariate expressions.
456
+ *
457
+ * Each rule matches a normalized equation `f(_x) = 0` — the unknown is
458
+ * the wildcard `_x` — and `replace` produces a root expression.
459
+ * Conditions should reject matches where other wildcards capture `_x`.
460
+ *
461
+ * Candidate roots are validated against the original equation, so an
462
+ * over-eager template degrades to a no-op rather than a wrong answer.
463
+ *
464
+ * Initialized to a copy of the built-in root-finding rules.
465
+ *
466
+ * Add custom rules with `push()`:
467
+ * ```ts
468
+ * ce.solveRules.push({
469
+ * match: ['Add', ['Tan', '_x'], '__b'],
470
+ * replace: ['Arctan', ['Negate', '__b']],
471
+ * condition: ({ __b }) => !__b.has('_x'),
472
+ * });
473
+ * ```
474
+ *
475
+ * Or replace entirely:
476
+ * ```ts
477
+ * ce.solveRules = myCustomRules;
478
+ * ```
479
+ */
480
+ get solveRules(): Rule[];
481
+ set solveRules(rules: Rule[]);
482
+ /**
483
+ * The rules used by `solve()` to transform an equation into equivalent,
484
+ * easier-to-solve forms before root-finding (e.g. `ln f(x) → f(x) - 1`).
485
+ *
486
+ * Same conventions and extension pattern as `solveRules`: the unknown is
487
+ * the wildcard `_x`; `push()` to extend, assign to replace.
488
+ */
489
+ get harmonizationRules(): Rule[];
490
+ set harmonizationRules(rules: Rule[]);
435
491
  /**
436
492
  * Return definition matching the symbol, starting with the current
437
493
  * lexical scope and going up the scope chain.
438
494
  */
439
495
  lookupDefinition(id: MathJsonSymbol): undefined | BoxedDefinition;
496
+ normalizeIdentifier(latex: string): string;
440
497
  operatorInfo(head: string): OperatorInfo | undefined;
498
+ symbolInfo(name: string): SymbolInfo | undefined;
441
499
  /**
442
500
  * Associate a new definition to a symbol in the current context.
443
501
  *
@@ -723,6 +781,9 @@ export declare class ComputeEngine implements IComputeEngine {
723
781
  }): Expression;
724
782
  rules(rules: Rule | ReadonlyArray<Rule | BoxedRule> | BoxedRuleSet | undefined | null, options?: {
725
783
  canonical?: boolean;
784
+ /** Default purpose applied to any rule in the set that doesn't carry
785
+ * its own `purpose` tag (a per-rule tag takes precedence). */
786
+ purpose?: RulePurpose;
726
787
  }): BoxedRuleSet;
727
788
  /**
728
789
  * Return a set of built-in rules.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Basic interval arithmetic operations
3
3
  *
4
4
  * @module interval/arithmetic
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Comparison and conditional interval operations
3
3
  *
4
4
  * @module interval/comparison
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Elementary interval functions (sqrt, pow, exp, ln, abs, floor, ceil, min, max, mod)
3
3
  *
4
4
  * @module interval/elementary
@@ -173,15 +173,23 @@ export declare function factorial(x: Interval | IntervalResult): IntervalResult;
173
173
  export declare function factorial2(x: Interval | IntervalResult): IntervalResult;
174
174
  /**
175
175
  * Binomial coefficient C(n, k) on intervals.
176
- * Both arguments are rounded to nearest integer. Monotonic in n for fixed k.
176
+ *
177
+ * Both arguments are rounded to nearest integer. C(n, k) is not monotone in k
178
+ * (it peaks at k ≈ n/2), so the enclosure enumerates the integer grid.
177
179
  */
178
180
  export declare function binomial(n: Interval | IntervalResult, k: Interval | IntervalResult): IntervalResult;
179
181
  /**
180
182
  * GCD on intervals. Both arguments rounded to nearest integer.
183
+ *
184
+ * gcd is not monotone (e.g. gcd(6, 5) = 1 sits between gcd(6, 6) = 6 and
185
+ * gcd(6, 4) = 2), so the enclosure enumerates the integer grid.
181
186
  */
182
187
  export declare function gcd(a: Interval | IntervalResult, b: Interval | IntervalResult): IntervalResult;
183
188
  /**
184
189
  * LCM on intervals. Both arguments rounded to nearest integer.
190
+ *
191
+ * lcm is not monotone (e.g. lcm(2, 5) = 10 exceeds lcm(2, 6) = 6), so the
192
+ * enclosure enumerates the integer grid.
185
193
  */
186
194
  export declare function lcm(a: Interval | IntervalResult, b: Interval | IntervalResult): IntervalResult;
187
195
  /**
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Interval arithmetic library for reliable function evaluation
3
3
  *
4
4
  * This module provides interval versions of mathematical operations
@@ -16,7 +16,7 @@ import { less as _less, lessEqual as _lessEqual, greater as _greater, greaterEqu
16
16
  export type { Interval, IntervalResult, BoolInterval } from './types';
17
17
  export { ok, point, containsExtremum, unionResults, mergeDomainClip, isPoint, containsZero, isPositive, isNegative, isNonNegative, isNonPositive, width, midpoint, getValue, unwrap, unwrapOrPropagate, } from './util';
18
18
  export { add, sub, mul, div, negate, _mul } from './arithmetic';
19
- export { sqrt, square, pow, powInterval, exp, ln, log10, log2, abs, floor, ceil, round, fract, trunc, min, max, mod, remainder, heaviside, sign, gamma, gammaln, factorial, factorial2, } from './elementary';
19
+ export { sqrt, square, pow, powInterval, exp, ln, log10, log2, abs, floor, ceil, round, fract, trunc, min, max, mod, remainder, heaviside, sign, gamma, gammaln, factorial, factorial2, binomial, gcd, lcm, } from './elementary';
20
20
  export { sin, cos, tan, cot, sec, csc, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh, acot, acsc, asec, coth, csch, sech, acoth, acsch, asech, sinc, fresnelS, fresnelC, } from './trigonometric';
21
21
  export { less, lessEqual, greater, greaterEqual, equal, notEqual, and, or, not, piecewise, clamp, } from './comparison';
22
22
  /**
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Trigonometric interval functions
3
3
  *
4
4
  * @module interval/trigonometric
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Interval arithmetic types for reliable function evaluation
3
3
  *
4
4
  * @module interval/types
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Utility functions for interval arithmetic
3
3
  *
4
4
  * @module interval/util
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Default LaTeX dictionary assembly.
3
3
  *
4
4
  * This file imports all individual domain dictionaries and assembles them
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_ALGEBRA: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_ARITHMETIC: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_CALCULUS: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * LaTeX dictionary for color constructors and conversions.
4
4
  *
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_COMPLEX: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_CORE: LatexDictionary;
3
3
  export declare const DELIMITERS_SHORTHAND: {
4
4
  '(': string;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_LINEAR_ALGEBRA: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { MathJsonExpression } from '../../../math-json';
3
3
  export declare const DEFINITIONS_LOGIC: LatexDictionary;
4
4
  export declare function parseQuantifier(kind: 'NotForAll' | 'NotExists' | 'ForAll' | 'Exists' | 'ExistsUnique'): (parser: Parser, terminator: Readonly<Terminator>) => MathJsonExpression | null;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_OTHERS: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_INEQUALITIES: LatexDictionaryEntry[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_SETS: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_STATISTICS: LatexDictionary;
@@ -1,3 +1,3 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const SYMBOLS: [string, string, number][];
3
3
  export declare const DEFINITIONS_SYMBOLS: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFINITIONS_TRIGONOMETRY: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * LaTeX dictionary entries for parsing and serializing physical quantities
3
3
  * with units.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { LatexDictionaryEntry } from '../types';
3
3
  export type { CommonEntry, IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry, IndexedMatchfixEntry, IndexedInfixEntry, IndexedPrefixEntry, IndexedPostfixEntry, IndexedEnvironmentEntry, IndexedLatexDictionaryEntry, IndexedLatexDictionary, } from './indexed-types';
4
4
  import type { IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry, IndexedMatchfixEntry, IndexedInfixEntry, IndexedPostfixEntry, IndexedEnvironmentEntry, IndexedLatexDictionaryEntry, IndexedLatexDictionary } from './indexed-types';
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Type definitions for the indexed LaTeX dictionary.
3
3
  *
4
4
  * These are separated from definitions.ts to break a circular dependency:
@@ -88,4 +88,7 @@ export type IndexedLatexDictionary = {
88
88
  functionByTrigger: Map<string, IndexedFunctionEntry[]>;
89
89
  symbolByTrigger: Map<string, IndexedSymbolEntry[]>;
90
90
  expressionByTrigger: Map<string, IndexedExpressionEntry[]>;
91
+ operatorByTrigger: Map<string, (IndexedInfixEntry | IndexedPrefixEntry | IndexedPostfixEntry)[]>;
92
+ universalDefs: Map<string, IndexedLatexDictionaryEntry[]>;
93
+ symbolTriggerDefs: Map<string, Map<string, IndexedLatexDictionaryEntry[]>>;
91
94
  };
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Standalone LaTeX <-> MathJSON parsing and serialization.
3
3
  *
4
4
  * This module provides a `LatexSyntax` class and free-standing `parse()` /
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Number parsing extracted from the _Parser class for modularity.
3
3
  *
4
4
  * All functions take a `Parser` interface and a `NumberFormatTokens` config
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { Parser } from './types';
3
3
  /** For error handling, if we have a symbol prefix, assume
4
4
  * the symbol is invalid (it would have been captured by
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { ParseLatexOptions, LatexToken, Terminator, Parser, SymbolTable } from './types';
3
3
  import type { IndexedLatexDictionary, IndexedLatexDictionaryEntry, IndexedInfixEntry, IndexedPostfixEntry, IndexedPrefixEntry, IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry } from './dictionary/definitions';
4
4
  import { BoxedType } from '../../common/type/boxed-type';
@@ -67,6 +67,8 @@ export declare class _Parser implements Parser {
67
67
  private _boundaries;
68
68
  private _lastPeek;
69
69
  private _peekCounter;
70
+ private _lookAheadCache;
71
+ private _lookAheadIndex;
70
72
  constructor(tokens: LatexToken[], dictionary: IndexedLatexDictionary, options: Readonly<ParseLatexOptions>);
71
73
  private _numberFormatTokens;
72
74
  getSymbolType(id: MathJsonSymbol): BoxedType;
@@ -103,7 +105,6 @@ export declare class _Parser implements Parser {
103
105
  */
104
106
  private canSkipMatchfixReparsing;
105
107
  latex(start: number, end?: number): string;
106
- private latexAhead;
107
108
  /**
108
109
  * Return at most `this._dictionary.lookahead` LaTeX tokens.
109
110
  *
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * DMS (Degrees-Minutes-Seconds) serialization utilities.
3
3
  */
4
4
  export interface DMSComponents {
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { NumberSerializationFormat } from './types';
3
3
  /**
4
4
  * @param expr - A number, can be represented as a string
@@ -17,13 +17,3 @@ export declare function serializeNumber(expr: MathJsonExpression | null, options
17
17
  * Does not handle integer and non-finite values.
18
18
  */
19
19
  export declare function serializeHexFloat(value: number): string;
20
- /**
21
- * Given a correctly formatted float hex, return the corresponding number.
22
- *
23
- * - "0xc.3p0" -> 12.1875
24
- * - "0x3.0Cp2" -> 12.1875
25
- * - "0x1.91eb851eb851fp+1" -> 3.14
26
- * - "0x3.23d70a3d70a3ep0" -> 3.14
27
- *
28
- */
29
- export declare function deserializeHexFloat(value: string): number;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { DelimiterScale } from './types';
3
3
  export declare function getApplyFunctionStyle(_expr: MathJsonExpression, _level: number): DelimiterScale;
4
4
  export declare function getGroupStyle(_expr: MathJsonExpression, _level: number): DelimiterScale;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { LatexString, SerializeLatexOptions, DelimiterScale } from './types';
3
3
  import type { IndexedLatexDictionary, IndexedLatexDictionaryEntry } from './dictionary/definitions';
4
4
  export declare class Serializer {
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * ## Reference
3
3
  * TeX source code:
4
4
  * {@link http://tug.org/texlive/devsrc/Build/source/texk/web2c/tex.web | Tex.web}
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { MathJsonExpression, MathJsonSymbol } from '../../math-json/types';
3
3
  import type { TypeString } from '../../common/type/types';
4
4
  import { BoxedType } from '../../common/type/boxed-type';
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function asLatexString(s: unknown): string | null;
3
3
  export declare function isRelationalOperator(name: string | undefined): boolean;
4
4
  export declare function isInequalityOperator(operator: string | undefined): boolean;
@@ -1,3 +1,3 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export type CanonicalArithmeticOperators = 'Add' | 'Negate' | 'Multiply' | 'Divide' | 'Power' | 'Sqrt' | 'Root' | 'Ln';
3
3
  export declare const ARITHMETIC_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const CALCULUS_LIBRARY: SymbolDefinitions[];
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const DEFAULT_LINSPACE_COUNT = 50;
3
3
  export declare const COLLECTIONS_LIBRARY: SymbolDefinitions;
4
4
  /**
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const COLORS_LIBRARY: SymbolDefinitions;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const COMBINATORICS_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,14 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
+ import { type SubjectPart } from '../boxed-expression/constraint-subject';
3
+ /**
4
+ * Assumption-based sign fallback for the part extractors
5
+ * (`Real`, `Imaginary`, `Argument` — and `Abs` in the arithmetic library):
6
+ * when the operand is a symbol with no value, look up assumed bounds for the
7
+ * corresponding subject (e.g. `im:tau` after `assume(Im(tau) > 0)`) and
8
+ * derive the sign from them (FUNGRIM-PLAN-3-ASSUMPTIONS.md §5.1b).
9
+ *
10
+ * Reads the fact index directly (never `ask()`), so it works inside
11
+ * `verify()`. Returns `undefined` when the facts don't entail a sign.
12
+ */
13
+ export declare function signFromAssumedPart(ce: ComputeEngine, op: Expression, part: SubjectPart): Sign | undefined;
2
14
  export declare const COMPLEX_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const CONTROL_STRUCTURES_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const CORE_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const FRACTALS_LIBRARY: SymbolDefinitions[];
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { SymbolDefinitions, IComputeEngine as ComputeEngine, LibraryDefinition } from '../global-types';
3
3
  /**
4
4
  * The standard libraries bundled with the Compute Engine.
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const LINEAR_ALGEBRA_LIBRARY: SymbolDefinitions[];
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * Quantifier domain helpers and boolean analysis functions.
4
4
  * Extracted from logic.ts for better code organization.
@@ -1,3 +1,3 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const LOGIC_LIBRARY: SymbolDefinitions;
3
3
  export declare const LOGIC_FUNCTION_LIBRARY: SymbolDefinitions;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const NUMBER_THEORY_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const POLYNOMIALS_LIBRARY: SymbolDefinitions[];
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Arithmetic helpers for Quantity expressions.
3
3
  *
4
4
  * Extracted from arithmetic.ts to keep that file focused on scalar
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare function randomExpression(level?: number): MathJsonExpression;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const RELOP_LIBRARY: SymbolDefinitions;
@@ -1,2 +1,28 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
+ import type { Expression, SymbolDefinitions } from '../global-types';
3
+ /**
4
+ * Three-valued type membership test used by the `contains` handlers of the
5
+ * mathematical number sets.
6
+ *
7
+ * - `true`: `x` is definitely of type `t` (its type is a subtype of `t`).
8
+ * - `false`: `x` is definitely *not* of type `t` — either its type is disjoint
9
+ * from `t`, or it is a concrete number literal whose exact value (reflected
10
+ * in its narrow type) does not match.
11
+ * - `undefined`: membership is indeterminate — e.g. `x` is a symbol of unknown
12
+ * or broader type that could, but need not, be of type `t`.
13
+ *
14
+ * Returning `undefined` (rather than a spurious `false`) is what allows
15
+ * `Element(x, Integers)` and similar to stay unevaluated for symbols of
16
+ * indeterminate type, instead of collapsing to `False`.
17
+ *
18
+ * The `false` refutation relies on the type lattice computing a correct
19
+ * *meet* for intersections: overlapping numeric primitives intersect to
20
+ * their greatest lower bound (e.g. `integer ∩ finite_real` =
21
+ * `finite_integer`), so `'nothing'` genuinely means "disjoint types"
22
+ * (REVIEW.md G15; see `meetPrimitiveTypes` in `common/type/subtype.ts`).
23
+ * This is what makes the precise per-set types used by the `contains`
24
+ * handlers below (e.g. `finite_complex`, `imaginary`) sound: a symbol
25
+ * declared `finite_real` is *not* refuted as an integer.
26
+ */
27
+ export declare function typeMembership(x: Expression, t: Type): boolean | undefined;
2
28
  export declare const SETS_LIBRARY: SymbolDefinitions;
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const STATISTICS_LIBRARY: SymbolDefinitions[];
@@ -1,2 +1,2 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  export declare const TRIGONOMETRY_LIBRARY: SymbolDefinitions[];
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { Type } from '../../common/type/types';
3
3
  /** Real inputs → finite_real, otherwise → finite_number. */
4
4
  export declare function numericTypeHandler(ops: ReadonlyArray<Expression>): Type;
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  * Re-export the unit registry from its canonical location in numerics/.
3
3
  *
4
4
  * The unit registry lives in numerics/ so that lower layers (like
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import { type UnitExpression } from './unit-data';
3
3
  /**
4
4
  * Convert a boxed expression representing a unit into a plain
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  /**
3
3
  * EL-4: Convert known infinite integer sets to their equivalent Limits bounds.
4
4
  * Returns undefined if the set cannot be converted to a Limits form.
@@ -1,4 +1,4 @@
1
- /* 0.57.0 */
1
+ /* 0.59.0 */
2
2
  import type { SmallInteger } from '../numerics/types';
3
3
  import { NumericValue, NumericValueData } from './types';
4
4
  import { ExactNumericValue } from './exact-numeric-value';