@stevenvo780/st-lang 4.9.0 → 4.10.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/dist/logic/profiles/natural-deduction-nk/formula.d.ts +18 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.js +102 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/index.d.ts +5 -0
- package/dist/logic/profiles/natural-deduction-nk/index.d.ts.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/index.js +28 -0
- package/dist/logic/profiles/natural-deduction-nk/index.js.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/prover.d.ts +49 -0
- package/dist/logic/profiles/natural-deduction-nk/prover.d.ts.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/prover.js +557 -0
- package/dist/logic/profiles/natural-deduction-nk/prover.js.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/types.d.ts +48 -0
- package/dist/logic/profiles/natural-deduction-nk/types.d.ts.map +1 -0
- package/dist/logic/profiles/natural-deduction-nk/types.js +35 -0
- package/dist/logic/profiles/natural-deduction-nk/types.js.map +1 -0
- package/dist/reasoning/automata/dfa.d.ts +17 -0
- package/dist/reasoning/automata/dfa.d.ts.map +1 -0
- package/dist/reasoning/automata/dfa.js +276 -0
- package/dist/reasoning/automata/dfa.js.map +1 -0
- package/dist/reasoning/automata/index.d.ts +8 -0
- package/dist/reasoning/automata/index.d.ts.map +1 -0
- package/dist/reasoning/automata/index.js +64 -0
- package/dist/reasoning/automata/index.js.map +1 -0
- package/dist/reasoning/automata/languages.d.ts +10 -0
- package/dist/reasoning/automata/languages.d.ts.map +1 -0
- package/dist/reasoning/automata/languages.js +78 -0
- package/dist/reasoning/automata/languages.js.map +1 -0
- package/dist/reasoning/automata/nfa.d.ts +8 -0
- package/dist/reasoning/automata/nfa.d.ts.map +1 -0
- package/dist/reasoning/automata/nfa.js +122 -0
- package/dist/reasoning/automata/nfa.js.map +1 -0
- package/dist/reasoning/automata/pda.d.ts +10 -0
- package/dist/reasoning/automata/pda.d.ts.map +1 -0
- package/dist/reasoning/automata/pda.js +169 -0
- package/dist/reasoning/automata/pda.js.map +1 -0
- package/dist/reasoning/automata/regex.d.ts +6 -0
- package/dist/reasoning/automata/regex.d.ts.map +1 -0
- package/dist/reasoning/automata/regex.js +259 -0
- package/dist/reasoning/automata/regex.js.map +1 -0
- package/dist/reasoning/automata/types.d.ts +69 -0
- package/dist/reasoning/automata/types.d.ts.map +1 -0
- package/dist/reasoning/automata/types.js +29 -0
- package/dist/reasoning/automata/types.js.map +1 -0
- package/dist/reasoning/computability/index.d.ts +239 -0
- package/dist/reasoning/computability/index.d.ts.map +1 -0
- package/dist/reasoning/computability/index.js +851 -0
- package/dist/reasoning/computability/index.js.map +1 -0
- package/dist/reasoning/number-theory/crt.d.ts +9 -0
- package/dist/reasoning/number-theory/crt.d.ts.map +1 -0
- package/dist/reasoning/number-theory/crt.js +39 -0
- package/dist/reasoning/number-theory/crt.js.map +1 -0
- package/dist/reasoning/number-theory/diophantine.d.ts +10 -0
- package/dist/reasoning/number-theory/diophantine.d.ts.map +1 -0
- package/dist/reasoning/number-theory/diophantine.js +87 -0
- package/dist/reasoning/number-theory/diophantine.js.map +1 -0
- package/dist/reasoning/number-theory/factorization.d.ts +12 -0
- package/dist/reasoning/number-theory/factorization.d.ts.map +1 -0
- package/dist/reasoning/number-theory/factorization.js +136 -0
- package/dist/reasoning/number-theory/factorization.js.map +1 -0
- package/dist/reasoning/number-theory/gcd.d.ts +8 -0
- package/dist/reasoning/number-theory/gcd.d.ts.map +1 -0
- package/dist/reasoning/number-theory/gcd.js +51 -0
- package/dist/reasoning/number-theory/gcd.js.map +1 -0
- package/dist/reasoning/number-theory/index.d.ts +9 -0
- package/dist/reasoning/number-theory/index.d.ts.map +1 -0
- package/dist/reasoning/number-theory/index.js +46 -0
- package/dist/reasoning/number-theory/index.js.map +1 -0
- package/dist/reasoning/number-theory/modular.d.ts +6 -0
- package/dist/reasoning/number-theory/modular.d.ts.map +1 -0
- package/dist/reasoning/number-theory/modular.js +75 -0
- package/dist/reasoning/number-theory/modular.js.map +1 -0
- package/dist/reasoning/number-theory/primality.d.ts +6 -0
- package/dist/reasoning/number-theory/primality.d.ts.map +1 -0
- package/dist/reasoning/number-theory/primality.js +144 -0
- package/dist/reasoning/number-theory/primality.js.map +1 -0
- package/dist/reasoning/number-theory/symbols.d.ts +3 -0
- package/dist/reasoning/number-theory/symbols.d.ts.map +1 -0
- package/dist/reasoning/number-theory/symbols.js +57 -0
- package/dist/reasoning/number-theory/symbols.js.map +1 -0
- package/dist/reasoning/real-analysis/index.d.ts +127 -0
- package/dist/reasoning/real-analysis/index.d.ts.map +1 -0
- package/dist/reasoning/real-analysis/index.js +638 -0
- package/dist/reasoning/real-analysis/index.js.map +1 -0
- package/dist/reasoning/topology/index.d.ts +41 -0
- package/dist/reasoning/topology/index.d.ts.map +1 -0
- package/dist/reasoning/topology/index.js +739 -0
- package/dist/reasoning/topology/index.js.map +1 -0
- package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts +2 -0
- package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts.map +1 -0
- package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js +288 -0
- package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js.map +1 -0
- package/dist/tests/reasoning/automata/automata.test.d.ts +2 -0
- package/dist/tests/reasoning/automata/automata.test.d.ts.map +1 -0
- package/dist/tests/reasoning/automata/automata.test.js +310 -0
- package/dist/tests/reasoning/automata/automata.test.js.map +1 -0
- package/dist/tests/reasoning/computability/computability.test.d.ts +2 -0
- package/dist/tests/reasoning/computability/computability.test.d.ts.map +1 -0
- package/dist/tests/reasoning/computability/computability.test.js +246 -0
- package/dist/tests/reasoning/computability/computability.test.js.map +1 -0
- package/dist/tests/reasoning/number-theory/number-theory.test.d.ts +2 -0
- package/dist/tests/reasoning/number-theory/number-theory.test.d.ts.map +1 -0
- package/dist/tests/reasoning/number-theory/number-theory.test.js +170 -0
- package/dist/tests/reasoning/number-theory/number-theory.test.js.map +1 -0
- package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts +2 -0
- package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts.map +1 -0
- package/dist/tests/reasoning/real-analysis/real-analysis.test.js +197 -0
- package/dist/tests/reasoning/real-analysis/real-analysis.test.js.map +1 -0
- package/dist/tests/reasoning/topology/topology.test.d.ts +2 -0
- package/dist/tests/reasoning/topology/topology.test.d.ts.map +1 -0
- package/dist/tests/reasoning/topology/topology.test.js +327 -0
- package/dist/tests/reasoning/topology/topology.test.js.map +1 -0
- package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts +2 -0
- package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts.map +1 -0
- package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js +473 -0
- package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js.map +1 -0
- package/dist/tooling/exporters/lean4/index.d.ts +47 -0
- package/dist/tooling/exporters/lean4/index.d.ts.map +1 -0
- package/dist/tooling/exporters/lean4/index.js +423 -0
- package/dist/tooling/exporters/lean4/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/computability/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crt.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/crt.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuB3F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Chinese Remainder Theorem generalizado.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Resuelve un sistema de congruencias { x ≡ r_i (mod m_i) }.
|
|
6
|
+
// No exige módulos coprimos: si hay módulos compartidos, fusiona
|
|
7
|
+
// usando Bézout y devuelve null si el sistema es inconsistente.
|
|
8
|
+
// Resultado: solución mínima no-negativa y módulo combinado lcm(m_i).
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.crt = crt;
|
|
11
|
+
const gcd_1 = require("./gcd");
|
|
12
|
+
const modular_1 = require("./modular");
|
|
13
|
+
function crt(congruences) {
|
|
14
|
+
if (congruences.length === 0)
|
|
15
|
+
return { solution: 0n, modulus: 1n };
|
|
16
|
+
for (const c of congruences) {
|
|
17
|
+
if (c.modulus <= 0n) {
|
|
18
|
+
throw new RangeError(`modulus must be positive, got ${c.modulus}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const first = congruences[0];
|
|
22
|
+
let solution = (0, modular_1.mod)(first.remainder, first.modulus);
|
|
23
|
+
let modulus = first.modulus;
|
|
24
|
+
for (let i = 1; i < congruences.length; i++) {
|
|
25
|
+
const c = congruences[i];
|
|
26
|
+
const r2 = (0, modular_1.mod)(c.remainder, c.modulus);
|
|
27
|
+
const m2 = c.modulus;
|
|
28
|
+
const { gcd: g, x } = (0, gcd_1.extendedGcd)(modulus, m2);
|
|
29
|
+
const diff = r2 - solution;
|
|
30
|
+
if (diff % g !== 0n)
|
|
31
|
+
return null;
|
|
32
|
+
const lcm = (modulus / g) * m2;
|
|
33
|
+
const step = (diff / g) * x;
|
|
34
|
+
solution = (0, modular_1.mod)(solution + modulus * step, lcm);
|
|
35
|
+
modulus = lcm;
|
|
36
|
+
}
|
|
37
|
+
return { solution, modulus };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=crt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crt.js","sourceRoot":"","sources":["../../../src/reasoning/number-theory/crt.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,0CAA0C;AAC1C,+DAA+D;AAC/D,6DAA6D;AAC7D,iEAAiE;AACjE,gEAAgE;AAChE,sEAAsE;;AAUtE,kBAuBC;AA/BD,+BAAoC;AACpC,uCAAgC;AAOhC,SAAgB,GAAG,CAAC,WAAyB;IAC3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,QAAQ,GAAG,IAAA,aAAG,EAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,IAAA,aAAG,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAA,iBAAW,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC;QAC3B,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,QAAQ,GAAG,IAAA,aAAG,EAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function linearDiophantine(a: bigint, b: bigint, c: bigint): {
|
|
2
|
+
x: bigint;
|
|
3
|
+
y: bigint;
|
|
4
|
+
} | null;
|
|
5
|
+
export declare function continuedFractionExpansion(num: bigint, den: bigint, maxLen?: number): bigint[];
|
|
6
|
+
export declare function fromContinuedFraction(coefs: bigint[]): {
|
|
7
|
+
num: bigint;
|
|
8
|
+
den: bigint;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=diophantine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diophantine.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/diophantine.ts"],"names":[],"mappings":"AAUA,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkBjC;AAID,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,EAAE,CA0B1F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAmBnF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Diofantinas lineales y fracciones continuas.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// linearDiophantine — soluciona a·x + b·y = c sobre enteros.
|
|
6
|
+
// continuedFractionExpansion — coeficientes de la expansión simple
|
|
7
|
+
// de num/den (Euclides clásico).
|
|
8
|
+
// fromContinuedFraction — reconstruye num/den a partir de [a0;a1,...].
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.linearDiophantine = linearDiophantine;
|
|
11
|
+
exports.continuedFractionExpansion = continuedFractionExpansion;
|
|
12
|
+
exports.fromContinuedFraction = fromContinuedFraction;
|
|
13
|
+
const gcd_1 = require("./gcd");
|
|
14
|
+
function linearDiophantine(a, b, c) {
|
|
15
|
+
if (a === 0n && b === 0n) {
|
|
16
|
+
if (c === 0n)
|
|
17
|
+
return { x: 0n, y: 0n };
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (a === 0n) {
|
|
21
|
+
if (c % b !== 0n)
|
|
22
|
+
return null;
|
|
23
|
+
return { x: 0n, y: c / b };
|
|
24
|
+
}
|
|
25
|
+
if (b === 0n) {
|
|
26
|
+
if (c % a !== 0n)
|
|
27
|
+
return null;
|
|
28
|
+
return { x: c / a, y: 0n };
|
|
29
|
+
}
|
|
30
|
+
const g = (0, gcd_1.gcd)(a, b);
|
|
31
|
+
if (c % g !== 0n)
|
|
32
|
+
return null;
|
|
33
|
+
const { x, y } = (0, gcd_1.extendedGcd)(a, b);
|
|
34
|
+
const factor = c / g;
|
|
35
|
+
return { x: x * factor, y: y * factor };
|
|
36
|
+
}
|
|
37
|
+
// Expansión simple de num/den. Soporta numeradores negativos
|
|
38
|
+
// devolviendo el cociente "floor" en a0 (estándar matemático).
|
|
39
|
+
function continuedFractionExpansion(num, den, maxLen = 64) {
|
|
40
|
+
if (den === 0n) {
|
|
41
|
+
throw new RangeError('continuedFractionExpansion: denominador 0');
|
|
42
|
+
}
|
|
43
|
+
let p = num;
|
|
44
|
+
let q = den;
|
|
45
|
+
// Normalizamos q > 0 para que floor sea consistente.
|
|
46
|
+
if (q < 0n) {
|
|
47
|
+
p = -p;
|
|
48
|
+
q = -q;
|
|
49
|
+
}
|
|
50
|
+
const result = [];
|
|
51
|
+
for (let i = 0; i < maxLen; i++) {
|
|
52
|
+
// Floor division: dividend = q * a + r, 0 <= r < q.
|
|
53
|
+
let a = p / q;
|
|
54
|
+
let r = p % q;
|
|
55
|
+
if (r < 0n) {
|
|
56
|
+
a -= 1n;
|
|
57
|
+
r += q;
|
|
58
|
+
}
|
|
59
|
+
result.push(a);
|
|
60
|
+
if (r === 0n)
|
|
61
|
+
return result;
|
|
62
|
+
p = q;
|
|
63
|
+
q = r;
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
function fromContinuedFraction(coefs) {
|
|
68
|
+
if (coefs.length === 0) {
|
|
69
|
+
throw new RangeError('fromContinuedFraction: array vacío');
|
|
70
|
+
}
|
|
71
|
+
// Recurrencia clásica: h_n = a_n·h_{n-1} + h_{n-2}; k similar.
|
|
72
|
+
// h_{-1}=1, h_{-2}=0, k_{-1}=0, k_{-2}=1.
|
|
73
|
+
let hPrev = 1n;
|
|
74
|
+
let hPrev2 = 0n;
|
|
75
|
+
let kPrev = 0n;
|
|
76
|
+
let kPrev2 = 1n;
|
|
77
|
+
for (const a of coefs) {
|
|
78
|
+
const h = a * hPrev + hPrev2;
|
|
79
|
+
const k = a * kPrev + kPrev2;
|
|
80
|
+
hPrev2 = hPrev;
|
|
81
|
+
hPrev = h;
|
|
82
|
+
kPrev2 = kPrev;
|
|
83
|
+
kPrev = k;
|
|
84
|
+
}
|
|
85
|
+
return { num: hPrev, den: kPrev };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=diophantine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diophantine.js","sourceRoot":"","sources":["../../../src/reasoning/number-theory/diophantine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { modPow } from './modular';
|
|
2
|
+
export declare function factorize(n: bigint): Array<{
|
|
3
|
+
prime: bigint;
|
|
4
|
+
exponent: number;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function divisors(n: bigint): bigint[];
|
|
7
|
+
export declare function eulerPhi(n: bigint): bigint;
|
|
8
|
+
export declare function mobius(n: bigint): -1 | 0 | 1;
|
|
9
|
+
export declare const _internal: {
|
|
10
|
+
modPow: typeof modPow;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=factorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factorization.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/factorization.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAwBnC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAsC/E;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB5C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU1C;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAU5C;AAID,eAAO,MAAM,SAAS;;CAAa,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Factorización entera y funciones aritméticas derivadas.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// factorize — combina trial-division (hasta primos pequeños),
|
|
6
|
+
// Miller-Rabin y Pollard's rho con polinomio
|
|
7
|
+
// x^2 + c para factores grandes.
|
|
8
|
+
// divisors — todos los divisores positivos en orden creciente.
|
|
9
|
+
// eulerPhi — totient de Euler: φ(n) = n · ∏ (1 - 1/p).
|
|
10
|
+
// mobius — función de Möbius: 0 si hay primo al cuadrado,
|
|
11
|
+
// (-1)^k si n = p1·...·pk con todos distintos.
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports._internal = void 0;
|
|
14
|
+
exports.factorize = factorize;
|
|
15
|
+
exports.divisors = divisors;
|
|
16
|
+
exports.eulerPhi = eulerPhi;
|
|
17
|
+
exports.mobius = mobius;
|
|
18
|
+
const gcd_1 = require("./gcd");
|
|
19
|
+
const primality_1 = require("./primality");
|
|
20
|
+
const modular_1 = require("./modular");
|
|
21
|
+
const absBig = (n) => (n < 0n ? -n : n);
|
|
22
|
+
// Pollard's rho con polinomio f(x) = x^2 + c (mod n).
|
|
23
|
+
// Reinicia con c distinto si converge a un factor trivial.
|
|
24
|
+
function pollardRho(n) {
|
|
25
|
+
if (n % 2n === 0n)
|
|
26
|
+
return 2n;
|
|
27
|
+
for (let c = 1n;; c++) {
|
|
28
|
+
let x = 2n;
|
|
29
|
+
let y = 2n;
|
|
30
|
+
let d = 1n;
|
|
31
|
+
const f = (z) => (z * z + c) % n;
|
|
32
|
+
while (d === 1n) {
|
|
33
|
+
x = f(x);
|
|
34
|
+
y = f(f(y));
|
|
35
|
+
const diff = x > y ? x - y : y - x;
|
|
36
|
+
d = (0, gcd_1.gcd)(diff, n);
|
|
37
|
+
}
|
|
38
|
+
if (d !== n)
|
|
39
|
+
return d;
|
|
40
|
+
// Trivial cycle: reintentar con otro c.
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function factorize(n) {
|
|
44
|
+
if (n <= 0n) {
|
|
45
|
+
throw new RangeError(`factorize: requiere n > 0, recibido ${n}`);
|
|
46
|
+
}
|
|
47
|
+
if (n === 1n)
|
|
48
|
+
return [];
|
|
49
|
+
const result = new Map();
|
|
50
|
+
const addFactor = (p, k = 1) => {
|
|
51
|
+
const prev = result.get(p) ?? 0;
|
|
52
|
+
result.set(p, prev + k);
|
|
53
|
+
};
|
|
54
|
+
let m = n;
|
|
55
|
+
// Trial division por primos pequeños (≤ 1000) cubre la mayoría
|
|
56
|
+
// de casos de tests y deja al rho los factores grandes.
|
|
57
|
+
for (let p = 2n; p < 1000n; p++) {
|
|
58
|
+
if (m === 1n)
|
|
59
|
+
break;
|
|
60
|
+
while (m % p === 0n) {
|
|
61
|
+
addFactor(p);
|
|
62
|
+
m /= p;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Resto factorizable: stack-based (rho recursivo via iterativo).
|
|
66
|
+
const stack = [];
|
|
67
|
+
if (m > 1n)
|
|
68
|
+
stack.push(m);
|
|
69
|
+
while (stack.length > 0) {
|
|
70
|
+
const cur = stack.pop();
|
|
71
|
+
if (cur === undefined || cur === 1n)
|
|
72
|
+
continue;
|
|
73
|
+
if ((0, primality_1.isPrime)(cur)) {
|
|
74
|
+
addFactor(cur);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
let f = pollardRho(cur);
|
|
78
|
+
while (f === cur)
|
|
79
|
+
f = pollardRho(cur);
|
|
80
|
+
stack.push(f);
|
|
81
|
+
stack.push(cur / f);
|
|
82
|
+
}
|
|
83
|
+
return Array.from(result.entries())
|
|
84
|
+
.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0))
|
|
85
|
+
.map(([prime, exponent]) => ({ prime, exponent }));
|
|
86
|
+
}
|
|
87
|
+
function divisors(n) {
|
|
88
|
+
const a = absBig(n);
|
|
89
|
+
if (a === 0n) {
|
|
90
|
+
throw new RangeError('divisors(0) no está definido');
|
|
91
|
+
}
|
|
92
|
+
if (a === 1n)
|
|
93
|
+
return [1n];
|
|
94
|
+
const factors = factorize(a);
|
|
95
|
+
let result = [1n];
|
|
96
|
+
for (const { prime, exponent } of factors) {
|
|
97
|
+
const next = [];
|
|
98
|
+
let pk = 1n;
|
|
99
|
+
for (let k = 0; k <= exponent; k++) {
|
|
100
|
+
for (const d of result)
|
|
101
|
+
next.push(d * pk);
|
|
102
|
+
pk *= prime;
|
|
103
|
+
}
|
|
104
|
+
result = next;
|
|
105
|
+
}
|
|
106
|
+
return result.sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
|
|
107
|
+
}
|
|
108
|
+
function eulerPhi(n) {
|
|
109
|
+
if (n <= 0n) {
|
|
110
|
+
throw new RangeError(`eulerPhi: requiere n > 0, recibido ${n}`);
|
|
111
|
+
}
|
|
112
|
+
if (n === 1n)
|
|
113
|
+
return 1n;
|
|
114
|
+
let result = n;
|
|
115
|
+
for (const { prime } of factorize(n)) {
|
|
116
|
+
result = (result / prime) * (prime - 1n);
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
function mobius(n) {
|
|
121
|
+
if (n <= 0n) {
|
|
122
|
+
throw new RangeError(`mobius: requiere n > 0, recibido ${n}`);
|
|
123
|
+
}
|
|
124
|
+
if (n === 1n)
|
|
125
|
+
return 1;
|
|
126
|
+
const factors = factorize(n);
|
|
127
|
+
for (const { exponent } of factors) {
|
|
128
|
+
if (exponent >= 2)
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
return factors.length % 2 === 0 ? 1 : -1;
|
|
132
|
+
}
|
|
133
|
+
// Helper para tests de millerRabin con Mersenne grandes — no exportado.
|
|
134
|
+
// (kept here only as a comment-anchor for the team)
|
|
135
|
+
exports._internal = { modPow: modular_1.modPow };
|
|
136
|
+
//# sourceMappingURL=factorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factorization.js","sourceRoot":"","sources":["../../../src/reasoning/number-theory/factorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcd.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/gcd.ts"],"names":[],"mappings":"AAUA,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAShD;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhD;AAKD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBvF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// gcd, lcm y algoritmo extendido sobre bigint.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// gcd(a,b) por Euclides binario-aritmético, siempre no-negativo.
|
|
6
|
+
// extendedGcd devuelve coeficientes Bézout (x,y) con a·x + b·y = gcd.
|
|
7
|
+
// Convención: para a=b=0 el gcd es 0 (consistente con álgebra
|
|
8
|
+
// conmutativa: el único divisor común es 0).
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.gcd = gcd;
|
|
11
|
+
exports.lcm = lcm;
|
|
12
|
+
exports.extendedGcd = extendedGcd;
|
|
13
|
+
const absBig = (n) => (n < 0n ? -n : n);
|
|
14
|
+
function gcd(a, b) {
|
|
15
|
+
let x = absBig(a);
|
|
16
|
+
let y = absBig(b);
|
|
17
|
+
while (y !== 0n) {
|
|
18
|
+
const r = x % y;
|
|
19
|
+
x = y;
|
|
20
|
+
y = r;
|
|
21
|
+
}
|
|
22
|
+
return x;
|
|
23
|
+
}
|
|
24
|
+
function lcm(a, b) {
|
|
25
|
+
if (a === 0n || b === 0n)
|
|
26
|
+
return 0n;
|
|
27
|
+
const g = gcd(a, b);
|
|
28
|
+
return absBig((a / g) * b);
|
|
29
|
+
}
|
|
30
|
+
// Extended Euclidean algorithm.
|
|
31
|
+
// Garantiza: a·x + b·y = gcd(a,b) (con signo original conservado).
|
|
32
|
+
// Si a o b son negativos, x/y se ajustan automáticamente.
|
|
33
|
+
function extendedGcd(a, b) {
|
|
34
|
+
// Trabajamos con valores absolutos y ajustamos signos al final.
|
|
35
|
+
const signA = a < 0n ? -1n : 1n;
|
|
36
|
+
const signB = b < 0n ? -1n : 1n;
|
|
37
|
+
let oldR = absBig(a);
|
|
38
|
+
let r = absBig(b);
|
|
39
|
+
let oldS = 1n;
|
|
40
|
+
let s = 0n;
|
|
41
|
+
let oldT = 0n;
|
|
42
|
+
let t = 1n;
|
|
43
|
+
while (r !== 0n) {
|
|
44
|
+
const q = oldR / r;
|
|
45
|
+
[oldR, r] = [r, oldR - q * r];
|
|
46
|
+
[oldS, s] = [s, oldS - q * s];
|
|
47
|
+
[oldT, t] = [t, oldT - q * t];
|
|
48
|
+
}
|
|
49
|
+
return { gcd: oldR, x: oldS * signA, y: oldT * signB };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=gcd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcd.js","sourceRoot":"","sources":["../../../src/reasoning/number-theory/gcd.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+CAA+C;AAC/C,+DAA+D;AAC/D,iEAAiE;AACjE,sEAAsE;AACtE,8DAA8D;AAC9D,6CAA6C;;AAI7C,kBASC;AAED,kBAIC;AAKD,kCAiBC;AAvCD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAExD,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,gCAAgC;AAChC,mEAAmE;AACnE,0DAA0D;AAC1D,SAAgB,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,gEAAgE;IAChE,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACnB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { gcd, lcm, extendedGcd } from './gcd';
|
|
2
|
+
export { modPow, modInverse, modSolve } from './modular';
|
|
3
|
+
export type { Congruence } from './crt';
|
|
4
|
+
export { crt } from './crt';
|
|
5
|
+
export { isPrime, millerRabin, nextPrime, previousPrime, primesBelow } from './primality';
|
|
6
|
+
export { factorize, divisors, eulerPhi, mobius } from './factorization';
|
|
7
|
+
export { linearDiophantine, continuedFractionExpansion, fromContinuedFraction, } from './diophantine';
|
|
8
|
+
export { legendreSymbol, jacobiSymbol } from './symbols';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Number Theory — barrel público.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Primitivas:
|
|
6
|
+
// gcd / lcm / extendedGcd — Euclides + Bézout.
|
|
7
|
+
// modPow / modInverse / modSolve — aritmética modular.
|
|
8
|
+
// crt — Chinese Remainder generalizado.
|
|
9
|
+
// isPrime / millerRabin — primalidad determinístico-ish.
|
|
10
|
+
// nextPrime / previousPrime / primesBelow
|
|
11
|
+
// factorize / divisors / eulerPhi / mobius
|
|
12
|
+
// linearDiophantine — Bézout sobre ax+by=c.
|
|
13
|
+
// continuedFractionExpansion / fromContinuedFraction
|
|
14
|
+
// legendreSymbol / jacobiSymbol — residuos cuadráticos.
|
|
15
|
+
// ============================================================
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.jacobiSymbol = exports.legendreSymbol = exports.fromContinuedFraction = exports.continuedFractionExpansion = exports.linearDiophantine = exports.mobius = exports.eulerPhi = exports.divisors = exports.factorize = exports.primesBelow = exports.previousPrime = exports.nextPrime = exports.millerRabin = exports.isPrime = exports.crt = exports.modSolve = exports.modInverse = exports.modPow = exports.extendedGcd = exports.lcm = exports.gcd = void 0;
|
|
18
|
+
var gcd_1 = require("./gcd");
|
|
19
|
+
Object.defineProperty(exports, "gcd", { enumerable: true, get: function () { return gcd_1.gcd; } });
|
|
20
|
+
Object.defineProperty(exports, "lcm", { enumerable: true, get: function () { return gcd_1.lcm; } });
|
|
21
|
+
Object.defineProperty(exports, "extendedGcd", { enumerable: true, get: function () { return gcd_1.extendedGcd; } });
|
|
22
|
+
var modular_1 = require("./modular");
|
|
23
|
+
Object.defineProperty(exports, "modPow", { enumerable: true, get: function () { return modular_1.modPow; } });
|
|
24
|
+
Object.defineProperty(exports, "modInverse", { enumerable: true, get: function () { return modular_1.modInverse; } });
|
|
25
|
+
Object.defineProperty(exports, "modSolve", { enumerable: true, get: function () { return modular_1.modSolve; } });
|
|
26
|
+
var crt_1 = require("./crt");
|
|
27
|
+
Object.defineProperty(exports, "crt", { enumerable: true, get: function () { return crt_1.crt; } });
|
|
28
|
+
var primality_1 = require("./primality");
|
|
29
|
+
Object.defineProperty(exports, "isPrime", { enumerable: true, get: function () { return primality_1.isPrime; } });
|
|
30
|
+
Object.defineProperty(exports, "millerRabin", { enumerable: true, get: function () { return primality_1.millerRabin; } });
|
|
31
|
+
Object.defineProperty(exports, "nextPrime", { enumerable: true, get: function () { return primality_1.nextPrime; } });
|
|
32
|
+
Object.defineProperty(exports, "previousPrime", { enumerable: true, get: function () { return primality_1.previousPrime; } });
|
|
33
|
+
Object.defineProperty(exports, "primesBelow", { enumerable: true, get: function () { return primality_1.primesBelow; } });
|
|
34
|
+
var factorization_1 = require("./factorization");
|
|
35
|
+
Object.defineProperty(exports, "factorize", { enumerable: true, get: function () { return factorization_1.factorize; } });
|
|
36
|
+
Object.defineProperty(exports, "divisors", { enumerable: true, get: function () { return factorization_1.divisors; } });
|
|
37
|
+
Object.defineProperty(exports, "eulerPhi", { enumerable: true, get: function () { return factorization_1.eulerPhi; } });
|
|
38
|
+
Object.defineProperty(exports, "mobius", { enumerable: true, get: function () { return factorization_1.mobius; } });
|
|
39
|
+
var diophantine_1 = require("./diophantine");
|
|
40
|
+
Object.defineProperty(exports, "linearDiophantine", { enumerable: true, get: function () { return diophantine_1.linearDiophantine; } });
|
|
41
|
+
Object.defineProperty(exports, "continuedFractionExpansion", { enumerable: true, get: function () { return diophantine_1.continuedFractionExpansion; } });
|
|
42
|
+
Object.defineProperty(exports, "fromContinuedFraction", { enumerable: true, get: function () { return diophantine_1.fromContinuedFraction; } });
|
|
43
|
+
var symbols_1 = require("./symbols");
|
|
44
|
+
Object.defineProperty(exports, "legendreSymbol", { enumerable: true, get: function () { return symbols_1.legendreSymbol; } });
|
|
45
|
+
Object.defineProperty(exports, "jacobiSymbol", { enumerable: true, get: function () { return symbols_1.jacobiSymbol; } });
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/number-theory/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qCAAqC;AACrC,+DAA+D;AAC/D,cAAc;AACd,4DAA4D;AAC5D,6DAA6D;AAC7D,yEAAyE;AACzE,wEAAwE;AACxE,4CAA4C;AAC5C,6CAA6C;AAC7C,+DAA+D;AAC/D,uDAAuD;AACvD,+DAA+D;AAC/D,+DAA+D;;;AAE/D,6BAA8C;AAArC,0FAAA,GAAG,OAAA;AAAE,0FAAA,GAAG,OAAA;AAAE,kGAAA,WAAW,OAAA;AAC9B,qCAAyD;AAAhD,iGAAA,MAAM,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAErC,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,yCAA0F;AAAjF,oGAAA,OAAO,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,wGAAA,WAAW,OAAA;AACpE,iDAAwE;AAA/D,0GAAA,SAAS,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,uGAAA,MAAM,OAAA;AAC9C,6CAIuB;AAHrB,gHAAA,iBAAiB,OAAA;AACjB,yHAAA,0BAA0B,OAAA;AAC1B,oHAAA,qBAAqB,OAAA;AAEvB,qCAAyD;AAAhD,yGAAA,cAAc,OAAA;AAAE,uGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare function mod(a: bigint, m: bigint): bigint;
|
|
2
|
+
export declare function modPow(base: bigint, exp: bigint, m: bigint): bigint;
|
|
3
|
+
export declare function modInverse(a: bigint, m: bigint): bigint | null;
|
|
4
|
+
export declare function modSolve(a: bigint, b: bigint, m: bigint): bigint | null;
|
|
5
|
+
export { mod };
|
|
6
|
+
//# sourceMappingURL=modular.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modular.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/modular.ts"],"names":[],"mappings":"AAUA,iBAAS,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBnE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO9D;AAID,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcvE;AAGD,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Aritmética modular sobre bigint.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// modPow — exponenciación modular por squaring.
|
|
6
|
+
// modInverse — inverso multiplicativo usando Bézout (null si no existe).
|
|
7
|
+
// modSolve — resuelve a·x ≡ b (mod m) (null si no hay solución).
|
|
8
|
+
// Convención: el resultado siempre vive en [0, m) cuando m > 0.
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.modPow = modPow;
|
|
11
|
+
exports.modInverse = modInverse;
|
|
12
|
+
exports.modSolve = modSolve;
|
|
13
|
+
exports.mod = mod;
|
|
14
|
+
const gcd_1 = require("./gcd");
|
|
15
|
+
function mod(a, m) {
|
|
16
|
+
if (m <= 0n) {
|
|
17
|
+
throw new RangeError(`modulus must be positive, got ${m}`);
|
|
18
|
+
}
|
|
19
|
+
const r = a % m;
|
|
20
|
+
return r < 0n ? r + m : r;
|
|
21
|
+
}
|
|
22
|
+
function modPow(base, exp, m) {
|
|
23
|
+
if (m <= 0n) {
|
|
24
|
+
throw new RangeError(`modulus must be positive, got ${m}`);
|
|
25
|
+
}
|
|
26
|
+
if (m === 1n)
|
|
27
|
+
return 0n;
|
|
28
|
+
if (exp < 0n) {
|
|
29
|
+
// a^(-k) mod m = (a^-1)^k mod m (si a^-1 existe).
|
|
30
|
+
const inv = modInverse(base, m);
|
|
31
|
+
if (inv === null) {
|
|
32
|
+
throw new RangeError(`modPow: base ${base} no invertible mod ${m}`);
|
|
33
|
+
}
|
|
34
|
+
return modPow(inv, -exp, m);
|
|
35
|
+
}
|
|
36
|
+
let result = 1n;
|
|
37
|
+
let b = mod(base, m);
|
|
38
|
+
let e = exp;
|
|
39
|
+
while (e > 0n) {
|
|
40
|
+
if ((e & 1n) === 1n)
|
|
41
|
+
result = (result * b) % m;
|
|
42
|
+
e >>= 1n;
|
|
43
|
+
b = (b * b) % m;
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
function modInverse(a, m) {
|
|
48
|
+
if (m <= 0n) {
|
|
49
|
+
throw new RangeError(`modulus must be positive, got ${m}`);
|
|
50
|
+
}
|
|
51
|
+
const { gcd: g, x } = (0, gcd_1.extendedGcd)(mod(a, m), m);
|
|
52
|
+
if (g !== 1n)
|
|
53
|
+
return null;
|
|
54
|
+
return mod(x, m);
|
|
55
|
+
}
|
|
56
|
+
// Resuelve a·x ≡ b (mod m). Solución única (mod m/gcd) cuando existe.
|
|
57
|
+
// Devolvemos la solución mínima no-negativa.
|
|
58
|
+
function modSolve(a, b, m) {
|
|
59
|
+
if (m <= 0n) {
|
|
60
|
+
throw new RangeError(`modulus must be positive, got ${m}`);
|
|
61
|
+
}
|
|
62
|
+
const aR = mod(a, m);
|
|
63
|
+
const bR = mod(b, m);
|
|
64
|
+
const g = (0, gcd_1.gcd)(aR, m);
|
|
65
|
+
if (bR % g !== 0n)
|
|
66
|
+
return null;
|
|
67
|
+
const aR2 = aR / g;
|
|
68
|
+
const bR2 = bR / g;
|
|
69
|
+
const m2 = m / g;
|
|
70
|
+
const inv = modInverse(aR2, m2);
|
|
71
|
+
if (inv === null)
|
|
72
|
+
return null;
|
|
73
|
+
return mod(bR2 * inv, m2);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=modular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modular.js","sourceRoot":"","sources":["../../../src/reasoning/number-theory/modular.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function millerRabin(n: bigint, witnesses?: bigint[]): boolean;
|
|
2
|
+
export declare function isPrime(n: bigint): boolean;
|
|
3
|
+
export declare function nextPrime(n: bigint): bigint;
|
|
4
|
+
export declare function previousPrime(n: bigint): bigint;
|
|
5
|
+
export declare function primesBelow(n: number): bigint[];
|
|
6
|
+
//# sourceMappingURL=primality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primality.d.ts","sourceRoot":"","sources":["../../../src/reasoning/number-theory/primality.ts"],"names":[],"mappings":"AA4CA,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,EAAsB,GAAG,OAAO,CAuBvF;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAO1C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAa/C;AAGD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB/C"}
|