@cortex-js/compute-engine 0.31.0 → 0.32.1
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/dist/compute-engine.esm.js +1843 -249
- package/dist/compute-engine.min.esm.js +38 -38
- package/dist/compute-engine.min.umd.js +38 -38
- package/dist/compute-engine.umd.js +1843 -249
- package/dist/math-json.esm.js +2 -2
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.js +2 -2
- package/dist/math-json.umd.js +2 -2
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +1 -1
- package/dist/types/common/type/primitive.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +23 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/product.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/terms.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +1 -1
- package/dist/types/compute-engine/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +14 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +75 -24
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +1 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +1 -1
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +64 -0
- package/dist/types/compute-engine/library/logic-utils.d.ts +58 -0
- package/dist/types/compute-engine/library/logic.d.ts +2 -1
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +6 -0
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +6 -0
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_LINEAR_ALGEBRA: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_LOGIC: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_OTHERS: LatexDictionary;
|
package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_INEQUALITIES: LatexDictionaryEntry[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_SETS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_STATISTICS: LatexDictionary;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const DEFINITIONS_TRIGONOMETRY: LatexDictionary;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
import { Delimiter, EnvironmentParseHandler, ExpressionParseHandler, InfixParseHandler, LatexDictionary, LatexDictionaryEntry, LatexString, LatexToken, LibraryCategory, MatchfixParseHandler, PostfixParseHandler, Precedence, SerializeHandler } from '../types';
|
|
3
3
|
export type CommonEntry = {
|
|
4
4
|
/** Note: a name is required if a serialize handler is provided */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
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';
|
|
@@ -45,6 +45,10 @@ export declare class _Parser implements Parser {
|
|
|
45
45
|
pushSymbolTable(): void;
|
|
46
46
|
popSymbolTable(): void;
|
|
47
47
|
addSymbol(id: string, type: BoxedType | TypeString): void;
|
|
48
|
+
private _quantifierScopeDepth;
|
|
49
|
+
get inQuantifierScope(): boolean;
|
|
50
|
+
enterQuantifierScope(): void;
|
|
51
|
+
exitQuantifierScope(): void;
|
|
48
52
|
get index(): number;
|
|
49
53
|
set index(val: number);
|
|
50
54
|
private _tokens;
|
|
@@ -292,6 +296,15 @@ export declare class _Parser implements Parser {
|
|
|
292
296
|
decorate(expr: Expression | null, start: number): Expression | null;
|
|
293
297
|
error(code: string | [string, ...Expression[]], fromToken: number): Expression;
|
|
294
298
|
private isFunctionOperator;
|
|
299
|
+
/**
|
|
300
|
+
* Check if a symbol looks like a predicate in First-Order Logic.
|
|
301
|
+
* A predicate is typically a single uppercase letter (P, Q, R, etc.)
|
|
302
|
+
* followed by parentheses containing arguments.
|
|
303
|
+
*
|
|
304
|
+
* This enables automatic inference of predicates without explicit declaration,
|
|
305
|
+
* so `\forall x. P(x)` works without having to declare `P` as a function.
|
|
306
|
+
*/
|
|
307
|
+
private looksLikePredicate;
|
|
295
308
|
/** Return all defs of the specified kind.
|
|
296
309
|
* The defs at the end of the dictionary have priority, since they may
|
|
297
310
|
* override previous definitions. (For example, there is a core definition
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
import type { Expression, MathJsonSymbol } from '../../math-json/types';
|
|
3
3
|
import { BoxedType, TypeString } from '../types';
|
|
4
4
|
import type { IndexedLatexDictionary, IndexedLatexDictionaryEntry } from './dictionary/definitions';
|
|
@@ -47,34 +47,54 @@ export type LibraryCategory = 'algebra' | 'arithmetic' | 'calculus' | 'collectio
|
|
|
47
47
|
* For example, in `1 + 2 * 3`, the `*` operator has a **higher** precedence
|
|
48
48
|
* than the `+` operator, so it is applied first.
|
|
49
49
|
*
|
|
50
|
-
* The precedence
|
|
50
|
+
* The precedence ranges from 0 to 1000. The larger the number, the higher the
|
|
51
51
|
* precedence, the more "binding" the operator is.
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
53
|
+
* ## Operator Precedence Table
|
|
54
|
+
*
|
|
55
|
+
* | Precedence | Operators | Description |
|
|
56
|
+
* |------------|-----------|-------------|
|
|
57
|
+
* | **880** | `\lnot` `\neg` `++` `--` `+` `-` (prefix) | Prefix/postfix unary |
|
|
58
|
+
* | **810** | `!` `'` `!!` `'''` | Factorial, prime (postfix) |
|
|
59
|
+
* | **800** | `_` (subscript) | Subscript |
|
|
60
|
+
* | **780** | `\degree` `\prime` | Degree, prime symbols |
|
|
61
|
+
* | **740** | `\%` | Percent |
|
|
62
|
+
* | **720** | `\/` (inline division) | Inline division |
|
|
63
|
+
* | **700** | `^` `\overset` `\underset` | Exponentiation, over/underscript |
|
|
64
|
+
* | **650** | (invisible multiply) `\cdot` | Implicit multiplication |
|
|
65
|
+
* | **600** | `\div` `\frac` | Division |
|
|
66
|
+
* | **390** | `\times` `*` `/` | Multiplication |
|
|
67
|
+
* | **350** | `\cup` `\cap` | Set union/intersection |
|
|
68
|
+
* | **275** | `+` `-` (infix) | Addition, subtraction |
|
|
69
|
+
* | **270** | `\to` `\rightarrow` `\mapsto` | Arrows |
|
|
70
|
+
* | **265** | `\setminus` `\smallsetminus` `:` (range) | Set difference, range |
|
|
71
|
+
* | **260** | `:=` | Assignment |
|
|
72
|
+
* | **255** | `\ne` | Not equal |
|
|
73
|
+
* | **250** | `\not\approxeq` | Not approximately equal |
|
|
74
|
+
* | **247** | `\approx` | Approximately |
|
|
75
|
+
* | **245-246** | `=` `<` `>` `\lt` `\gt` `\nless` `\ngtr` | Equality, comparison |
|
|
76
|
+
* | **241-244** | `\le` `\leq` `\ge` `\geq` `>=` | Less/greater or equal |
|
|
77
|
+
* | **240** | `\in` `\notin` `\subset` `\supset` ... | Set membership/relations |
|
|
78
|
+
* | **235** | `\land` `\wedge` `\&` | Logical AND |
|
|
79
|
+
* | **232** | `\veebar` `\barwedge` (Xor, Nand, Nor) | Logical XOR, NAND, NOR |
|
|
80
|
+
* | **230** | `\lor` `\vee` `\parallel` | Logical OR |
|
|
81
|
+
* | **220** | `\implies` `\Rightarrow` `\vdash` `\models` | Implication, entailment |
|
|
82
|
+
* | **219** | `\iff` `\Leftrightarrow` `\equiv` | Equivalence |
|
|
83
|
+
* | **200** | `\forall` `\exists` `\exists!` | Quantifiers |
|
|
84
|
+
* | **160** | `\mid` `\vert` (set builder) | Set builder notation |
|
|
85
|
+
* | **19-20** | `,` `;` `\ldots` | Sequence separators |
|
|
86
|
+
*
|
|
87
|
+
* ## Key Relationships
|
|
88
|
+
*
|
|
89
|
+
* - **Comparisons bind tighter than logic**: `x = 1 \lor y = 2` parses as
|
|
90
|
+
* `(x = 1) \lor (y = 2)`, not `x = (1 \lor y) = 2`
|
|
91
|
+
* - **AND binds tighter than OR**: `a \land b \lor c` parses as
|
|
92
|
+
* `(a \land b) \lor c`
|
|
93
|
+
* - **Logic operators bind tighter than implication**: `a \lor b \implies c`
|
|
94
|
+
* parses as `(a \lor b) \implies c`
|
|
74
95
|
*
|
|
75
96
|
* Some constants are defined below for common precedence values.
|
|
76
97
|
*
|
|
77
|
-
*
|
|
78
98
|
* **Note**: MathML defines
|
|
79
99
|
* [some operator precedence](https://www.w3.org/TR/2009/WD-MathML3-20090924/appendixc.html),
|
|
80
100
|
* but it has some issues and inconsistencies. However,
|
|
@@ -518,6 +538,31 @@ export type ParseLatexOptions = NumberFormat & {
|
|
|
518
538
|
* **Default:** `false`
|
|
519
539
|
*/
|
|
520
540
|
preserveLatex: boolean;
|
|
541
|
+
/**
|
|
542
|
+
* Controls how quantifier scope is determined when parsing expressions
|
|
543
|
+
* like `\forall x. P(x) \rightarrow Q(x)`.
|
|
544
|
+
*
|
|
545
|
+
* - `"tight"`: The quantifier binds only to the immediately following
|
|
546
|
+
* well-formed formula, stopping at logical connectives (`\rightarrow`,
|
|
547
|
+
* `\implies`, `\land`, `\lor`, etc.). This follows standard First-Order
|
|
548
|
+
* Logic conventions. Use explicit parentheses for wider scope:
|
|
549
|
+
* `\forall x. (P(x) \rightarrow Q(x))`.
|
|
550
|
+
*
|
|
551
|
+
* - `"loose"`: The quantifier scope extends to the end of the expression
|
|
552
|
+
* or until a lower-precedence operator is encountered.
|
|
553
|
+
*
|
|
554
|
+
* **Default:** `"tight"`
|
|
555
|
+
*
|
|
556
|
+
* @example
|
|
557
|
+
* // With "tight" (default):
|
|
558
|
+
* // \forall x. P(x) \rightarrow Q(x)
|
|
559
|
+
* // parses as: (∀x. P(x)) → Q(x)
|
|
560
|
+
*
|
|
561
|
+
* // With "loose":
|
|
562
|
+
* // \forall x. P(x) \rightarrow Q(x)
|
|
563
|
+
* // parses as: ∀x. (P(x) → Q(x))
|
|
564
|
+
*/
|
|
565
|
+
quantifierScope: 'tight' | 'loose';
|
|
521
566
|
};
|
|
522
567
|
/**
|
|
523
568
|
*
|
|
@@ -538,6 +583,12 @@ export interface Parser {
|
|
|
538
583
|
pushSymbolTable(): void;
|
|
539
584
|
popSymbolTable(): void;
|
|
540
585
|
addSymbol(id: MathJsonSymbol, type: BoxedType | TypeString): void;
|
|
586
|
+
/** True if currently parsing inside a quantifier body (ForAll, Exists, etc.) */
|
|
587
|
+
readonly inQuantifierScope: boolean;
|
|
588
|
+
/** Enter a quantifier scope for parsing the body of ForAll, Exists, etc. */
|
|
589
|
+
enterQuantifierScope(): void;
|
|
590
|
+
/** Exit the current quantifier scope */
|
|
591
|
+
exitQuantifierScope(): void;
|
|
541
592
|
/** The index of the current token */
|
|
542
593
|
index: number;
|
|
543
594
|
/** True if the last token has been reached.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export type CanonicalArithmeticOperators = 'Add' | 'Negate' | 'Multiply' | 'Divide' | 'Power' | 'Sqrt' | 'Root' | 'Ln';
|
|
3
3
|
export declare const ARITHMETIC_LIBRARY: SymbolDefinitions[];
|
|
4
4
|
export declare function isPrime(expr: BoxedExpression): boolean | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const CALCULUS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const COMBINATORICS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const COMPLEX_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const CONTROL_STRUCTURES_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const CORE_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const LINEAR_ALGEBRA_LIBRARY: SymbolDefinitions[];
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/* 0.32.1 */
|
|
2
|
+
/**
|
|
3
|
+
* Quantifier domain helpers and boolean analysis functions.
|
|
4
|
+
* Extracted from logic.ts for better code organization.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Extract the finite domain from a quantifier's condition.
|
|
8
|
+
* Supports:
|
|
9
|
+
* - ["Element", "x", ["Set", 1, 2, 3]] → [1, 2, 3]
|
|
10
|
+
* - ["Element", "x", ["Range", 1, 5]] → [1, 2, 3, 4, 5]
|
|
11
|
+
* - ["Element", "x", ["Interval", 1, 5]] → [1, 2, 3, 4, 5] (integers only)
|
|
12
|
+
* Returns null if the domain is not finite or not recognized.
|
|
13
|
+
*/
|
|
14
|
+
export declare function extractFiniteDomain(condition: BoxedExpression, ce: ComputeEngine): {
|
|
15
|
+
variable: string;
|
|
16
|
+
values: BoxedExpression[];
|
|
17
|
+
} | null;
|
|
18
|
+
/**
|
|
19
|
+
* Check if an expression contains a reference to a specific variable.
|
|
20
|
+
*/
|
|
21
|
+
export declare function bodyContainsVariable(expr: BoxedExpression, variable: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* For nested quantifiers like ∀x∈S. ∀y∈T. P(x,y), collect the inner domains.
|
|
24
|
+
* Returns an array of {variable, values} for nested ForAll/Exists with finite domains.
|
|
25
|
+
*/
|
|
26
|
+
export declare function collectNestedDomains(body: BoxedExpression, ce: ComputeEngine): {
|
|
27
|
+
variable: string;
|
|
28
|
+
values: BoxedExpression[];
|
|
29
|
+
}[];
|
|
30
|
+
/**
|
|
31
|
+
* Get the innermost body of nested quantifiers.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getInnermostBody(body: BoxedExpression): BoxedExpression;
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate ForAll over a Cartesian product of domains.
|
|
36
|
+
* Returns True if the predicate holds for all combinations.
|
|
37
|
+
*/
|
|
38
|
+
export declare function evaluateForAllCartesian(domains: {
|
|
39
|
+
variable: string;
|
|
40
|
+
values: BoxedExpression[];
|
|
41
|
+
}[], body: BoxedExpression, ce: ComputeEngine): BoxedExpression | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Evaluate Exists over a Cartesian product of domains.
|
|
44
|
+
* Returns True if the predicate holds for at least one combination.
|
|
45
|
+
*/
|
|
46
|
+
export declare function evaluateExistsCartesian(domains: {
|
|
47
|
+
variable: string;
|
|
48
|
+
values: BoxedExpression[];
|
|
49
|
+
}[], body: BoxedExpression, ce: ComputeEngine): BoxedExpression | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a boolean expression is satisfiable.
|
|
52
|
+
* Returns True if there exists an assignment that makes the expression true.
|
|
53
|
+
*/
|
|
54
|
+
export declare function isSatisfiable(expr: BoxedExpression, ce: ComputeEngine): BoxedExpression;
|
|
55
|
+
/**
|
|
56
|
+
* Check if a boolean expression is a tautology.
|
|
57
|
+
* Returns True if the expression is true for all possible assignments.
|
|
58
|
+
*/
|
|
59
|
+
export declare function isTautology(expr: BoxedExpression, ce: ComputeEngine): BoxedExpression;
|
|
60
|
+
/**
|
|
61
|
+
* Generate a truth table for a boolean expression.
|
|
62
|
+
* Returns a List of Lists with headers and rows.
|
|
63
|
+
*/
|
|
64
|
+
export declare function generateTruthTable(expr: BoxedExpression, ce: ComputeEngine): BoxedExpression;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/* 0.32.1 */
|
|
2
|
+
/**
|
|
3
|
+
* Basic evaluation functions for logical operators.
|
|
4
|
+
* Extracted from logic.ts for better code organization.
|
|
5
|
+
*/
|
|
6
|
+
export declare function evaluateAnd(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
7
|
+
engine: ComputeEngine;
|
|
8
|
+
}): BoxedExpression | undefined;
|
|
9
|
+
export declare function evaluateOr(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
10
|
+
engine: ComputeEngine;
|
|
11
|
+
}): BoxedExpression | undefined;
|
|
12
|
+
export declare function evaluateNot(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
13
|
+
engine: ComputeEngine;
|
|
14
|
+
}): BoxedExpression | undefined;
|
|
15
|
+
export declare function evaluateEquivalent(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
16
|
+
engine: ComputeEngine;
|
|
17
|
+
}): BoxedExpression | undefined;
|
|
18
|
+
export declare function evaluateImplies(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
19
|
+
engine: ComputeEngine;
|
|
20
|
+
}): BoxedExpression | undefined;
|
|
21
|
+
export declare function evaluateXor(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
22
|
+
engine: ComputeEngine;
|
|
23
|
+
}): BoxedExpression | undefined;
|
|
24
|
+
export declare function evaluateNand(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
25
|
+
engine: ComputeEngine;
|
|
26
|
+
}): BoxedExpression | undefined;
|
|
27
|
+
export declare function evaluateNor(args: ReadonlyArray<BoxedExpression>, { engine: ce }: {
|
|
28
|
+
engine: ComputeEngine;
|
|
29
|
+
}): BoxedExpression | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Convert a boolean expression to Negation Normal Form (NNF).
|
|
32
|
+
* In NNF, negations only appear directly before variables (literals).
|
|
33
|
+
* This is a prerequisite for CNF/DNF conversion.
|
|
34
|
+
*/
|
|
35
|
+
export declare function toNNF(expr: BoxedExpression, ce: ComputeEngine): BoxedExpression;
|
|
36
|
+
/**
|
|
37
|
+
* Convert a boolean expression to Conjunctive Normal Form (CNF).
|
|
38
|
+
*/
|
|
39
|
+
export declare function toCNF(expr: BoxedExpression, ce: ComputeEngine): BoxedExpression;
|
|
40
|
+
/**
|
|
41
|
+
* Convert a boolean expression to Disjunctive Normal Form (DNF).
|
|
42
|
+
*/
|
|
43
|
+
export declare function toDNF(expr: BoxedExpression, ce: ComputeEngine): BoxedExpression;
|
|
44
|
+
/**
|
|
45
|
+
* Extract all propositional variables from a boolean expression.
|
|
46
|
+
* Returns a sorted array of unique variable names.
|
|
47
|
+
*/
|
|
48
|
+
export declare function extractVariables(expr: BoxedExpression): string[];
|
|
49
|
+
/**
|
|
50
|
+
* Evaluate a boolean expression with a given truth assignment.
|
|
51
|
+
* Returns True, False, or undefined if the expression cannot be evaluated.
|
|
52
|
+
*/
|
|
53
|
+
export declare function evaluateWithAssignment(expr: BoxedExpression, assignment: Record<string, boolean>, ce: ComputeEngine): BoxedExpression;
|
|
54
|
+
/**
|
|
55
|
+
* Generate all possible truth assignments for a list of variables.
|
|
56
|
+
* Each assignment is a Record mapping variable names to boolean values.
|
|
57
|
+
*/
|
|
58
|
+
export declare function generateAssignments(variables: string[]): Generator<Record<string, boolean>>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const LOGIC_LIBRARY: SymbolDefinitions;
|
|
3
3
|
export declare function simplifyLogicFunction(x: BoxedExpression): {
|
|
4
4
|
value: BoxedExpression;
|
|
5
5
|
because: string;
|
|
6
6
|
} | undefined;
|
|
7
|
+
export declare const LOGIC_FUNCTION_LIBRARY: SymbolDefinitions;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const NUMBER_THEORY_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const POLYNOMIALS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare function randomExpression(level?: number): Expression;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const RELOP_LIBRARY: SymbolDefinitions;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const SETS_LIBRARY: SymbolDefinitions;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const STATISTICS_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare const TRIGONOMETRY_LIBRARY: SymbolDefinitions[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare function bigint(a: Decimal | number | bigint | string): bigint | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* 0.
|
|
1
|
+
/* 0.32.1 */
|
|
2
2
|
export declare function bigintValue(expr: Expression | null | undefined): bigint | null;
|
|
3
3
|
/** Output a shorthand if possible */
|
|
4
4
|
export declare function numberToExpression(num: number | bigint, fractionalDigits?: string | number): Expression;
|