MathKernel-MCP
Un kernel matemático multi-motor consciente de la evidencia, utilizable tanto como biblioteca de Python (mathkernel) como servidor MCP (mathkernel-mcp), para que aplicaciones y LLMs puedan realizar matemáticas avanzadas preservando suposiciones, procedencia y evidencia específica de cada afirmación.
Documentación
MathKernel
Un kernel matemático multi-motor consciente de la evidencia: utilizable tanto como biblioteca de Python (mathkernel) como servidor MCP (mathkernel-mcp) — para que aplicaciones y LLMs puedan hacer matemáticas avanzadas preservando suposiciones, procedencia y evidencia específica de cada afirmación.
El LLM interpreta la intención; el MathKernel establece la evidencia matemática.
Los resultados matemáticos llevan un nivel de confianza explícito, una etiqueta de motor y un rastro de derivación. El cálculo exacto, los certificados verificados, los resultados simbólicos, los recintos certificados, la evidencia empírica y las pruebas formales son afirmaciones distintas. La aritmética exacta por sí sola no es una prueba formal; la ascendencia de entrada aproximada no debe desaparecer silenciosamente.
Tabla de contenidos
- Por qué
- Arquitectura
- Matriz de características
- Instalación
- Inicio rápido — servidor MCP
- Inicio rápido — biblioteca de Python
- Modelo de confianza
- Matemáticas simbólicas continuas
- Dinámica finita y análisis de PRNG
- Matemáticas de ingeniería
- Geometría y topología
- Estadística y modelado estocástico
- EDPs y elementos finitos adaptativos
- Inferencia de relaciones y geometría de la información
- Rendimiento: numba · CUDA · paralelismo
- Visualización y artefactos portátiles
- Proyecciones multimodales compartidas
- Sonificación científica
- Artefactos multimodales unificados
- Superficie de herramientas MCP
- Configuración
- Estructura del repositorio
- Paquetes de habilidades
- Pruebas
- Límites de seguridad
- Licencia
Por qué
Los LLMs son buenos en la intención matemática y malos en la aritmética matemática. MathKernel invierte la división del trabajo: el modelo analiza, planifica e interpreta; el kernel calcula y registra evidencia específica de cada afirmación. Algunas afirmaciones usan certificados independientes o verificaciones cruzadas; otras son cálculos exactos en un solo motor. El acuerdo entre motores por sí solo no es una prueba, y una sola etiqueta de confianza no reemplaza el paquete de evidencia.

Arquitectura
MathKernel es una capa de orquestación tipada más que un solucionador único. La fachada pública posee el análisis sintáctico, los contextos, la identidad de objetos, la persistencia, la composición de evidencia, la política de recursos y el seguimiento de derivaciones; los adaptadores de dominio poseen las matemáticas reales. Las capas de presentación están aguas abajo y no pueden cambiar silenciosamente la afirmación que se hace.
Python / MCP
|
v
MathKernel facade
|-- parser + contexts + typed objects
|-- execution/evidence contract
|-- persistence + derivation graph
|
+--> symbolic / exact / certified / formal / numerical engines
|
+--> MathResult and derived mathematical objects
|
+--> MultimodalProjection
|--> mathkernel-viz
|--> mathkernel-sonify
+--> unified portable artifacts
Esta separación es deliberada: un renderizador puede presentar evidencia, pero no crea evidencia matemática más sólida simplemente produciendo un gráfico pulido o un artefacto de audio.
Matriz de características
| Dominio | Superficie de cómputo | Motores | Techo de verificación / evidencia |
|---|---|---|---|
| Álgebra simbólica | parsear, sustituir, simplificar/expandir/factorizar, resolver, sistemas | SymPy | SIMBÓLICO; la ascendencia de entrada puede reducirlo |
| Cálculo | diferenciación, integración, límites, series, sumas, productos | SymPy | SIMBÓLICO + condiciones |
| Transformadas integrales | Laplace/Fourier/Mellin/Z bilateral, inversas, ROC y obligaciones de propiedades | adaptador de transformadas tipadas + SymPy | SIMBÓLICO; NUMÉRICO para ascendencia aproximada |
| Análisis complejo | ramas/dominios, ceros/singularidades, residuos, series de Laurent, contornos, principio del argumento, continuación, mapas conformes | adaptador complejo tipado + SymPy | Identidades definitorias SIMBÓLICAS; certificados de índice EXACTOS solo para geometría exacta, limitados por ascendencia en otros casos |
| Probabilidad continua | distribuciones univariadas/conjuntas/condicionales tipadas, transformaciones, marginales, Bayes, covarianza, divergencia, estadísticos de orden | adaptador de probabilidad tipado + SymPy | Evidencia SIMBÓLICA de normalización/identidad; inexistencia matemática retenida |
| Grafos exactos | grafos simples/dirigidos/ponderados/multigrafos tipados, recorridos, componentes, caminos más cortos, MST, flujo máximo/corte mínimo, emparejamiento bipartito, circuitos de Euler, coloración, orden topológico, ciclos, centralidad, isomorfismo | algoritmos deterministas exactos de grafos sobre Fraction + núcleos de recorrido CSR njit | Certificados testigo EXACTOS; la optimalidad NP-difícil es ÓPTIMO/CANDIDATO/IMPOSIBLE/DESCONOCIDO, nunca inexistencia heurística |
| Combinatoria exacta | clases combinatorias, conteos exactos, generación perezosa, funciones generadoras ordinarias/exponenciales, recurrencias | enumeración exacta de enteros/Fraction + SymPy + núcleos de recurrencia njit verificados | Conteos EXACTOS y verificaciones de recurrencia/coeficientes |
| Álgebra finita | grupos finitos, grupos de permutaciones, grupos abelianos, homomorfismos, Z/nZ, GF(p^m), módulos, formas normales de Smith/Hermite | álgebra exacta + combinatoria de SymPy + núcleos Cayley/GF(p)[x] njit | Certificados EXACTOS de axiomas, homomorfismos, irreducibilidad y forma normal |
| Álgebra lineal | determinante, inversa, multiplicar, rango, RREF, valores propios, soluciones exactas | SymPy | EXACTO para aritmética exacta; de otro modo limitado por ascendencia |
| Razonamiento | planificación de DAG de obligaciones, equivalencia, contraejemplos | SymPy + Z3 + Lean | SIMBÓLICO / EXACTO / FORMAL según verificador |
| Numérica certificada | evaluación de precisión arbitraria y envolturas de intervalos | mpmath + mpmath.iv | NUMÉRICO CERTIFICADO o NUMÉRICO |
| Enteros | precisión arbitraria, mcd/mcm, primalidad, factorización, CRT, aritmética modular | exacto + numba por lotes | EXACTO |
| Generación de código | emisión TypeScript/Python/Rust, verificación de tipos, round-trip simbólico, sandbox | compiladores + SymPy | Verificación SIMBÓLICA; nunca más fuerte que la fuente |
| Campos binarios | aritmética/construcción GF(2^m) e irreducibilidad de Rabin | núcleos njit de n-limbos | Certificados EXACTOS |
| Álgebra lineal GF(2) | rango, espacio nulo, potencias, Berlekamp–Massey, columnas sin acarreo | enteros empaquetados en bits | EXACTO |
| Transformadas discretas | FWHT exacto con respaldo de bigint | numba | EXACTO |
| Dinámica finita | transferencia de Koopman/observación, visibilidad, tensores rezagados, diagnósticos | exacto + NumPy/CuPy | EXACTO o NUMÉRICO, seleccionado explícitamente |
| Tensores de Markov ramificados | árboles de Markov finitos enraizados arbitrarios, leyes de hojas/cumulantes exactas, certificados de aplanamiento de aristas verdaderas, observaciones estocásticas de hojas, transferencia de rango de canal, recuperación exacta y fusión colectiva de sensores | suma-producto/enumeración exacta de Fraction + diagnósticos SVD de NumPy | Identidades algebraicas/ranos/recuperación EXACTAS; evidencia NUMÉRICA de valores singulares y condicionamiento mantenida por separado |
| Detectabilidad de relaciones conectadas | leyes puras de interacción conectada, visibilidad de modos estocásticos, espectros de esperanza condicional, retención exacta chi-cuadrado/Fisher, certificados de invisibilidad, cotas finitas de muestra y fusión de sensores | leyes exactas de Fraction + SVD ponderado de NumPy + validación exacta de razón de verosimilitud binomial | Identidades EXACTAS de transferencia/información y cotas inferiores/superiores; las verificaciones Monte Carlo EMPÍRICAS permanecen etiquetadas por separado |
| Visibilidad de subespacios de relaciones | transferencia de Gram de Fisher multi-relación, espectros de visibilidad generalizados, certificados de colisión de combinación ciega, diseño de sensores con restricción de costo, particiones empíricas y corrección de covarianza de largo plazo | álgebra de probabilidad finita + sistemas propios generalizados ponderados de NumPy + enumeración exacta finita de sensores | Identidades EXACTAS de transferencia local/procesamiento de datos/colisión; los espectros NUMÉRICOS y las verificaciones EMPÍRICAS de dependencia/SkewDB retienen alcance explícito |
| Geometría de información de observaciones intrínsecas | tangentes de Fisher de símplex finito, espectros de información retenida invariantes de coordenadas, transferencia local exacta de chi-cuadrado, cotas inferiores de prueba en la peor dirección, cotas superiores finitas de Bhattacharyya, bootstrap de espectro iid/bloque/clúster, adaptador SkewDB de resolución local | álgebra de probabilidad finita + sistemas propios generalizados ponderados + validación binomial exacta de SciPy + remuestreo con semilla | Identidades EXACTAS de tangente finita/procesamiento de datos/divergencia y cotas finitas de prueba simple; los sistemas propios NUMÉRICOS y las verificaciones EMPÍRICAS de incertidumbre permanecen etiquetadas por separado |
| Inferencia de relaciones compuestas | una prueba de subespacio de relaciones independiente de dirección, cota finita consciente de dimensión, geometría de Fisher eficiente en molestias, regiones de espacios propios, bootstrap studentizado/de bloque, diagnósticos HAC y de especificación errónea | álgebra de Fisher finita + sistemas propios de NumPy + calibración chi-cuadrado opcional de SciPy + remuestreo con semilla | Identidades EXACTAS de molestias/procesamiento de datos y garantía de puntuación acotada conservadora; la calibración compuesta ASINTÓTICA y las verificaciones EMPÍRICAS de bootstrap/dependencia están etiquetadas |
| Fourier finito | cálculos ciclotómicos de DFT/transferencia/coeficiente/órbita | exacto + FFT de NumPy | EXACTO o verificación cruzada NUMÉRICA |
| Búsqueda de cierres | relaciones de cierre irreducibles cíclicas/XOR | encuentro en el medio njit | Evidencia EXACTA de testigo/exhaustiva |
| Dinámica condicionada | acceso a órbitas, cociclos, cierres y síntesis de simetría | enumeración exacta + reescritura canónica | Testigos EXACTOS |
| Cumulantes | momentos/cumulantes y estadísticos de muestra conectados | exacto + NumPy | Álgebra EXACTA o muestras EMPÍRICAS |
| Conjuntos y lógica | álgebra de conjuntos, pertenencia, verdad cuantificada y eliminación | conjuntos de SymPy + Z3 | Testigos SMT EXACTOS donde se establecen |
| Álgebra polinomial | bases de Gröbner, división, resultantes, factorización, pertenencia a ideales | algoritmos polinomiales exactos de SymPy | Certificados algebraicos EXACTOS |
| Probabilidad discreta | variables aleatorias racionales, Bayes, cantidades de Markov, muestreo con semilla | Fraction + NumPy | Distribuciones EXACTAS; muestreo EMPÍRICO |
| Estadística y sistemas estocásticos | muestras tipadas, GLMs, inferencia de rango/remuestreo, análisis de supervivencia/series temporales; leyes de Poisson/Wiener/GP/CTMC; SDEs de Itô tipadas, caminos de Euler–Maruyama/Milstein escalar y estudios de convergencia acoplados | adaptadores tipados estadísticos/supervivencia/series temporales/estocásticos/SDE + SymPy + NumPy/SciPy/mpmath | Las identidades EXACTAS permanecen separadas de los ajustes/condicionamientos/exponenciales NUMÉRICOS etiquetados y del remuestreo/simulación EMPÍRICO con semilla; sin validez implícita de proceso/modelo, teorema de convergencia, inferencia poblacional o causalidad |
| Tensores | tensores dispersos, contracción y soluciones dispersas | exacto + njit + CuPy | EXACTO o NUMÉRICO según la ruta aritmética |
| EDOs / EDPs | clasificación simbólica de EDOs/dsolve; solucionadores numéricos de PVI/EDPs nombradas; sistemas de EDPs tipados, formas débiles, mallas de símplex orientadas, espacios P1, ensamblaje disperso, soluciones algebraicas verificadas, indicadores de residuo-salto, marcado, refinamiento conforme, transferencia nodal y tasas de estimador observadas | adaptadores tipados de EDP/FEM/adaptividad + SymPy + SciPy disperso + mpmath + njit + CUDA/CuPy | los estimadores y las tasas empíricas retienen ascendencia y nunca se convierten en cotas continuas rigurosas o teoremas de convergencia |
| Optimización | puntos críticos, KKT, LP exacto, no lineal numérico/multi-inicio | Fraction + njit + pool de procesos | Certificados LP EXACTOS o candidatos NUMÉRICOS |
| Unidades | dimensiones SI, conversiones racionales y propagación de unidades semánticas | Fraction exacto | EXACTO |
| Aseguramiento | obligaciones de intervalos, reproducción en Lean, bolas de Arb, persistencia y fuzzing | mpmath.iv + flint + Lean | NUMÉRICO CERTIFICADO / FORMAL / evidencia diferencial |
| Demostración de teoremas | cartera SMT y certificados de Lean | Z3 + Lean | Testigo SMT EXACTO o prueba FORMAL verificada por núcleo |
| Barridos exhaustivos | búsquedas de Collatz y cuboides | numba + CUDA + pools de procesos | EXACTO solo cuando la cobertura es exhaustiva |
| Trabajos asíncronos | enviar/estado/resultado/listar con recuperación que preserva evidencia | pool de trabajos | Preserva la evidencia subyacente |
| Visualización | artefactos matemáticos interactivos/estáticos independientes del renderizador | SVG de Python + three.js incluido | Sin nueva evidencia; preserva la confianza de la fuente |
| Sonificación | mapeos de audio científico declarativos y WAV determinista | PCM de Python + WebAudio | Solo observación candidata |
| Artefactos multimodales | ensamblaje sincronizado de artefactos visuales/auditivos | esquema compartido de artefactos | Reclamación/evidencia incluida más débil |
| Geometría diferencial | variedades, cartas orientadas, métricas, mapas de coordenadas, campos tensoriales, formas, curvatura, derivadas covariante/Lie/exterior, operaciones de cuña/interior/retroceso/Hodge | adaptador de geometría tipado + SymPy | Identidades SIMBÓLICAS con dominios explícitos, jacobianos, firma y ascendencia; la entrada numérica permanece NUMÉRICA |
| Geometría computacional | puntos/conjuntos concretos, polígonos, politopos de semiespacios, triangulaciones, envolvente, contención, intersección, vecino más cercano, Delaunay y Voronoi | determinantes exactos de SymPy + filtros de coma flotante adaptativos | Topología EXACTA para coordenadas exactas; NUMÉRICO solo cuando los filtros deciden; de otro modo resultado AMBIGUO explícito |
| Topología algebraica | complejos de cadenas simpliciales/cúbicas/integrales finitos, conversión exacta de triangulaciones, fronteras orientadas, característica de Euler, homología sobre Z/Q/GF(p) | matrices enteras exactas + forma normal de Smith certificada + eliminación racional/modular | Certificados EXACTOS de cierre de caras, frontera², rango-nulidad, cociente, torsión y Euler–Poincaré |
Superficie de funcionalidad tipada
Las herramientas MCP genéricas math_object_create, math_object_get y math_apply
exponen las siguientes operaciones composicionales. Este es el inventario completo
de operaciones tipadas; math_capability_query es la fuente viva de esquemas de parámetros,
tipos de salida, límites, motores y métodos de verificación.
| Dominio | Objeto | Operaciones |
|---|---|---|
| Transformadas integrales | TransformProblem | apply, solve, verify |
| Análisis complejo | ComplexFunction | analytic_continuation, analyticity, argument_principle, classify_singularity, conformal_at, conformal_map, contour_integral, derivative, laurent_series, residue, singularities, zeros |
| Análisis complejo | Contour | winding_number |
| Probabilidad continua | Distribution | cdf, characteristic_function, convolve, cross_entropy, entropy, expectation, kl_divergence, mean, mgf, mixture, moment, order_statistic, pdf, quantile, query, survival, truncate, variance, verify |
| Probabilidad continua | JointDistribution | bayes, condition, correlation, covariance, marginal, order_statistic, verify |
| Probabilidad continua | ConditionalDistribution, RandomVariable | condicional cdf/mean/pdf/variance/verify; variable aleatoria transform |
| Grafos exactos | Graph, MultiGraph | bfs, centrality, coloring, connected_components, cycle_detection, dfs, euler_path, matching, shortest_path, verify; Graph también tiene isomorphic_to |
| Grafos exactos | DirectedGraph | bfs, centrality, cycle_detection, dfs, shortest_path, strongly_connected_components, topological_sort, verify |
| Grafos exactos | WeightedGraph | bfs, centrality, coloring, connected_components, cycle_detection, dfs, euler_path, matching, maximum_flow, minimum_cut, minimum_spanning_tree, shortest_path, strongly_connected_components, topological_sort, verify |
| Combinatoria | CombinatorialClass, GeneratingFunction | clase count/generate/verify; función generadora coefficient/recurrence/verify |
| Grupos finitos | FiniteGroup | center, centralizer, closure, commutator_subgroup, conjugacy_classes, cosets, generated_subgroup, normality, orbits, order, quotient, stabilizers, subgroups, verify |
| Grupos finitos | PermutationGroup | contains, orbits, order, stabilizer_chain, stabilizers, verify |
| Grupos finitos | FiniteAbelianGroup, GroupHomomorphism | abeliano order/verify; homomorfismo image/kernel/verify |
| Álgebra finita | FiniteRing, FiniteField | add, inverse, multiply, verify |
| Álgebra finita | Module | abelian_group, hermite_normal_form, smith_normal_form, verify |
| Señales | ContinuousSignal, DiscreteSignal | continua sample; discreta autocorrelation, convolution, correlation, cross_spectrum, dft, resample, stft, window |
| Señales | Spectrum, Filter, FilterDesign, FilterState | espectro idft; filtro apply_signal/initial_state/to_transfer_function; diseño design; estado process |
| Control | TransferFunction | bode, feedback, frequency_response, impulse_response, nyquist, poles, root_locus, series, stability, step_response, to_filter, to_state_space, to_zero_pole_gain, zeros |
| Control | StateSpaceSystem | bode, coefficient_units, controllability, discretize, finite_lqr, frequency_response, kalman, kalman_state, lqg, lqr, mpc, nyquist, observability, observer, place_poles, poles, stability, state_feedback, to_discrete_control, to_transfer_function, zeros |
| Control | DiscreteControlSystem | bode, controllability, frequency_response, nyquist, observability, poles, stability, to_state_space, to_transfer_function, zeros |
| Control | ZeroPoleGain, TransferMatrix | ZPK bode/nyquist/poles/to_transfer_function/zeros; matriz entry |
| Control secuencial | FiniteHorizonLQR, KalmanState, MPCPlan | LQR control/rollout/verify; Kalman predict/update; MPC first_control/verify |
| Optimización | OptimizationProblem | certify_milp, solve, to_conic, verify_certificate, verify_milp_certificate |
| Optimización | ConicProblem, QuadraticallyConstrainedProblem | solve, verify_certificate |
| Geometría diferencial | Metric | inverse_metric, christoffel, riemann, ricci, scalar_curvature, einstein, geodesic_equations |
| Geometría diferencial | CoordinateMap | jacobian, verify |
| Geometría diferencial | TensorField | covariant_derivative, lie_derivative |
| Geometría diferencial | DifferentialForm | wedge, exterior_derivative, interior_product, pullback, hodge_star |
| Geometría computacional | Point | distance_to |
| Geometría computacional | PointSet | orientation, incircle, segment_intersection, convex_hull, nearest_neighbor, delaunay, voronoi |
| Geometría computacional | Polygon | verify, contains, intersection, triangulate |
| Geometría computacional | Polytope | verify, contains |
| Geometría computacional | Triangulation | verify, to_simplicial_complex |
| Topología algebraica | SimplicialComplex, CubicalComplex | verify, chain_complex, boundary_matrix, homology |
| Topología algebraica | ChainComplex | verify, boundary_matrix, homology, euler_characteristic |
| Evidencia estadística e inferencia | StatisticalSample | describe, covariance, empirical_distribution, evidence_profile, mann_whitney, wilcoxon, kruskal_wallis, ks_2samp, spearman, kendall, permutation_test, bootstrap |
| Análisis de supervivencia | SurvivalDataset | verify, kaplan_meier |
| Análisis de supervivencia | KaplanMeierEstimate | verify, survival_at |
| Análisis de supervivencia | CoxProportionalHazardsModel | verify, fit |
| Análisis de supervivencia | CoxPHFit | verify, diagnostics, predict_partial_hazard |
| Series temporales | TimeSeriesDataset | verify, acf, pacf, stationarity_test |
| Series temporales | TimeSeriesAnalysis | verify |
| Series temporales | TimeSeriesModel | verify, fit |
| Series temporales | TimeSeriesFit | verify, diagnostics, forecast |
| Series temporales | TimeSeriesForecast | verify |
| Procesos estocásticos | PoissonProcess | verify, pmf, moments, increment_distribution |
| Procesos estocásticos | WienerProcess | verify, finite_dimensional, increment_distribution |
| Procesos estocásticos | GaussianProcess | verify, finite_dimensional, condition |
| Procesos estocásticos | ContinuousTimeMarkovChain | verify, transition_matrix, distribution, stationary_distribution |
| Resultados de procesos estocásticos | FiniteDimensionalDistribution, GaussianProcessPosterior, CTMCTransition | verify |
| Ecuaciones diferenciales estocásticas | StochasticDifferentialEquation | verify, simulate, convergence_study |
| Simulaciones de EDE | SDESimulation | verify, path, terminal_values |
| Convergencia de EDE | SDEConvergenceStudy | verify |
| Modelos lineales generalizados | GeneralizedLinearModel | verify, fit |
| Modelos lineales generalizados | GLMFit | verify, diagnostics, predict |
| Resultados no paramétricos | NonparametricTestResult, ResamplingResult | verify |
| Ecuaciones diferenciales parciales | PDEProblem | verify, classify, boundary_compatibility, derive_weak_form |
| Resultados de EDP | PDEClassification, PDECompatibilityReport | verify |
| Formulaciones débiles | WeakForm | verify |
| Malla de elementos finitos | FEMMesh | verify, reference_element, finite_element_space |
| Elemento de referencia | ReferenceElement | verify, basis, quadrature |
| Resultados de elementos finitos | BasisFunctionSet, QuadratureRule, FiniteElementSpace | verify |
| Álgebra de FEM | AssembledSystem | verify, solve |
| Solución de FEM | FEMSolution | verify, estimate_error |
| Estimación de error de FEM | FEMErrorEstimate | verify, mark, compare |
| Refinamiento | RefinementMarking | verify, refine |
| Malla refinada | RefinedMesh | verify, reference_element, finite_element_space |
| Transferencia de malla / convergencia | MeshTransfer, FEMConvergenceObservation | verify |
Los objetos fuente usan el mismo límite: objetos de transformada/complejo/probabilidad,
grafos y estructuras combinatorias, grupos/anejos/campos/módulos finitos,
señales/filtros/sistemas de control, problemas de optimización, y Manifold →
Chart → Metric/CoordinateMap/TensorField/DifferentialForm, además de
Point/PointSet/Polygon/Polytope/Triangulation, y finitos
SimplicialComplex/CubicalComplex/integral ChainComplex, y observaciones
StatisticalSample tipadas, especificaciones GeneralizedLinearModel, y
fuentes de supervivencia SurvivalDataset/CoxProportionalHazardsModel, además de
fuentes de tiempo ordenado TimeSeriesDataset/TimeSeriesModel, y
fuentes de ley de proceso PoissonProcess/WienerProcess/GaussianProcess/ContinuousTimeMarkovChain,
modelos Itô StochasticDifferentialEquation, y
ecuaciones/dominios/condiciones PDEProblem estructurados.
NonparametricTestResult, ResamplingResult, KaplanMeierEstimate, GLMFit,
y CoxPHFit son registros solo derivados, vinculados a la fuente, con reproducción determinista exacta,
numérica o de flujo sembrado. TimeSeriesAnalysis, TimeSeriesFit, y
TimeSeriesForecast, FiniteDimensionalDistribution,
GaussianProcessPosterior, y CTMCTransition siguen el mismo límite de reproducción
solo de salida. PDEClassification, PDECompatibilityReport, y WeakForm
reproducen su resultado de parte principal, traza representada o identidad débil completa
del problema fuente. FEMMesh vincula esa forma débil y una triangulación
verificada opcional. ReferenceElement, BasisFunctionSet, QuadratureRule, y
FiniteElementSpace son solo de salida con ascendencia reproducible de fuente única o múltiple.
AssembledSystem retiene contribuciones locales y globales dispersas además de
sus fuentes de espacio/cuadratura; FEMSolution solo de salida retiene la fuente
exacta del sistema ensamblado y diagnósticos de solucionador reproducibles. Los registros
solo de salida G.5 FEMErrorEstimate, RefinementMarking, RefinedMesh, MeshTransfer, y
FEMConvergenceObservation retienen la cadena completa de solución a malla hija,
política de marcado, celdas padre/hijo, pesos de interpolación y entradas de tasa empírica.
SDESimulation y SDEConvergenceStudy además reproducen
sus flujos PCG64 y discretizaciones. Los tipos solo derivados no pueden forjarse mediante
entrada pública.
Instalación
pip install mathkernel # Python mathematical core
pip install 'mathkernel[mcp]' # add the optional MCP transport
Desde un checkout del código fuente:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e . # Python mathematical core
pip install -e '.[mcp]' # add the optional MCP transport
Extras opcionales:
pip install -e '.[perf]' # numba — JIT kernels (sieves, GF(2^m), FWHT, closure search)
pip install -e '.[cuda]' # CuPy + all nvidia-*-cu12 runtime libraries (RTX-class GPU)
pip install -e '.[latex]' # antlr4 runtime for math_parse_latex
pip install -e '.[dev]' # pytest
Lean 4 + Mathlib se instala por defecto en el primer inicio de mathkernel-mcp y
a través de mathkernel-lean-setup (elan + un lake workspace fijado). Omítelo con
MATHKERNEL_SKIP_LEAN_INSTALL=1 (prueba rápida de CI/wheel).
Nota sobre GPU: Los wheels de CuPy no incluyen librerías CUDA. El extra
cudainstala los paquetes pip denvidia-*-cu12correspondientes — sin ellos, las cargas de DLL de cuBLAS/NVRTC fallan incluso aunqueimport cupytenga éxito. La disponibilidad de GPU se comprueba en tiempo de ejecución con una multiplicación de matrices real, por lo que una pila rota degrada con elegancia a CPU. Verifica tu pila conpython scripts/gpu_smoke.py.
Inicio rápido — servidor MCP
mathkernel-mcp
El servidor habla MCP sobre stdio (FastMCP 3) y envía instrucciones principales al
cliente en el momento de la inicialización: descubrir → parsear → contexto → disciplina de confianza → trabajos asíncronos
→ procedencia. 162 herramientas, todas con prefijo math_.
Sesión típica de agente:
math_capabilities # discover surface, limits, engines
math_parse("x^2 - 3*x + 2 = 0") # -> expr_id
math_context_create(domains={"x": "real"}) # -> context_id
math_reason(expr_id, context_id, formal=true) # solve + independently verify
math_derivation_trace(step_id) # full provenance on demand
Los barridos de larga duración son asíncronos:
math_job_submit("collatz", {"n_max": 14}) -> math_job_status(job_id) -> math_job_result(job_id)
Inicio rápido — biblioteca de Python
El servidor MCP es una capa de transporte delgada; todo está disponible en proceso:
from mathkernel import MathKernel
kernel = MathKernel()
# symbolic
r = kernel.parse("x^2 - 2 = 0")
sol = kernel.solve(r.data["expr_id"], "x")
assert sol.ok and sol.trust.value == "symbolic"
# exact GF(2^m) field arithmetic
f = kernel.gf2m_create(8, "1b") # AES polynomial x^8 + x^4 + x^3 + x + 1 (hex reduction part)
kernel.gf2m_compute(f.data["field_id"], "mul", ["53", "ca"])
# finite dynamics: an explicit eight-state cyclic permutation
transition = [1, 2, 3, 4, 5, 6, 7, 0]
fs = kernel.finite_system_create("uniform", transition)
km = kernel.koopman_matrix(fs.data["system_id"], {"kind": "walsh", "r": 3})
vis = kernel.koopman_visibility(fs.data["system_id"], {"kind": "walsh", "r": 3})
# Exact zeros certify the requested modes in this declared finite model.
# closure relations (njit meet-in-the-middle)
kernel.closure_search("cyclic", m="97", weight_bound=10, multipliers=["1", "5"])
Módulos independientes (mathkernel.gf2m, mathkernel.koopman, mathkernel.relations,
mathkernel.cumulants, mathkernel.finite_fourier, mathkernel.transforms,
mathkernel.integral_transforms, mathkernel.complex_analysis,
mathkernel.continuous_probability, mathkernel.integers,
mathkernel.computational_geometry, mathkernel.algebraic_topology,
mathkernel.collatz, mathkernel.cuboid) son utilizables sin la fachada cuando
no necesitas seguimiento de derivación.
Modelo de confianza
formal Lean certificate accepted by the Lean kernel
exact exact computation / checked claim-specific certificate
symbolic symbolic engine agreement (e.g. SymPy residual checks)
interval_certified rigorous enclosure (mpmath interval)
numeric_high_precision arbitrary-precision numeric
numeric float evidence (incl. GPU fast paths)
empirical / heuristic / unknown
La confianza general está limitada por la evidencia más débil requerida para establecer el resultado reclamado — nunca la confianza máxima emitida por un solo nodo. El desacuerdo independiente entre backends se conserva como un conflicto explícito, no se promedia.
Cada MathResult también lleva un evidence_bundle con evidencia separada de cálculo,
prueba, certificado, numérica, de modelo y empírica. claim_evidence
retiene esos paquetes por conclusión en lugar de aplanar afirmaciones diferentes en una sola
puntuación. El campo heredado trust sigue siendo un resumen conservador y se limita automáticamente
por la evidencia requerida para el resultado. Un justified_trust proporcionado por el productor
es un techo, nunca una anulación; una prueba o certificado no verificado
soporta solo unknown.
Los estados semánticos distinguen la fuerza de la prueba o certificación de los resultados
matemáticos como does_not_exist, undefined, infeasible y unsupported.
Estas distinciones sobreviven a la serialización MCP, la recuperación de trabajos asíncronos,
la reproducción de derivaciones, la visualización y el ensamblaje de artefactos multimodales.
El registro de capacidades separa los niveles de confianza anunciados de los métodos de verificación. Consúltalo por dominio, tipo de entrada/salida, operación, nivel de confianza, método de verificación o motor; los registros de capacidad también identifican su manejador de ejecución y dimensiones de costo significativas. Los planes de expresión registran la ruta de capacidad resuelta antes de que el ejecutor de obligaciones existente la ejecute.
Las rutas exactas y numéricas están estrictamente separadas: las herramientas de koopman/dinámica finita
usan por defecto exact=true (valores racionales/ciclotómicos de grado de prueba); exact=false selecciona la
ruta numérica vectorizada (GPU CuPy cuando es utilizable) y degrada la confianza a numeric.
Los literales decimales son observaciones aproximadas. Un decimal (RealNode) en cualquier parte de
una expresión limita su confianza a numeric desde parse en adelante — 0.1 + x se parsea como
numeric, 1/2 + x como symbolic. Los certificados formales (Lean) y los contraejemplos
exactos de SMT se rechazan para entradas aproximadas, porque los backends codificarían la sintaxis
decimal como racionales exactos — probando silenciosamente una afirmación diferente. Usa racionales
exactos o certificación por intervalos cuando se necesite evidencia de grado de prueba.
Matemática simbólica continua
Los dominios continuos usan objetos tipados y el modelo composicional
object_create → apply en lugar de exponer una superficie CAS plana.
Cada operación registra un DAG de cuatro obligaciones: validación de entrada tipada,
cálculo de candidatos, verificación de invariantes de dominio y reconciliación de evidencia
conservadora.
- Transformadas integrales — Transformadas de Laplace, Fourier, Mellin y Z bilateral
con convenciones explícitas, suposiciones y regiones de convergencia. La Z inversa
usa extracción de Laurent/residuos consciente del anillo cuando está justificada. La verificación
registra obligaciones de ida y vuelta, linealidad, convolución, diferenciación, teorema de valores y
ROC por separado; las obligaciones no resueltas permanecen como
unknown. - Análisis complejo — derivadas, candidatos de analiticidad, ceros, singularidades, series de Laurent, residuos, integración de contornos, números de enrollamiento, contabilidad del principio del argumento, continuación de identidad conservadora y mapas conformes conscientes del dominio. Las convenciones de ramas, cortes, puntos excluidos, orientación de contornos e incidentes de frontera permanecen explícitos.
- Probabilidad continua — distribuciones tipadas univariadas, de variables aleatorias, conjuntas y condicionales; PDF/CDF/supervivencia/cuantil, momentos, transformadas, entropía, truncamiento, convolución, mezclas, divergencia, marginales, condicionamiento/Bayes, covarianza/correlación y estadísticas de orden. El soporte, las restricciones de parámetros, los jacobianos y las ramas inversas se conservan.
La disponibilidad simbólica es evidencia candidata, no prueba independiente. Las identidades
del mismo motor están limitadas a symbolic; la ascendencia decimal permanece limitada a
numeric. does_not_exist (por ejemplo, una media de Cauchy) es distinto de un
método no soportado o una pregunta de convergencia no resuelta.
Las convenciones y suposiciones son parte del objeto. El signo y la normalización de Fourier, las variables de origen/destino de la transformada, las ramas/cortes complejos, los soportes de probabilidad y las restricciones de parámetros nunca se seleccionan silenciosamente. La orientación del contorno y el cálculo de singularidades son obligatorios donde el teorema depende de ellos.
La verificación es específica de la operación. Las transformadas conservan cada obligación de identidad y ROC verificada o no resuelta. Los residuos se comparan con fórmulas de límite/derivada definitorias o coeficientes de Laurent; las afirmaciones de contorno conservan singularidades encerradas, cortes y números de enrollamiento. La probabilidad verifica la normalización, la no negatividad consciente del soporte, los límites/derivada/monotonicidad de CDF cuando es decidible, y las ramas jacobianas. Estos son verificaciones simbólicas a menos que un certificado exacto o un registro numérico separado diga lo contrario.
Los fallos usan estados semánticos: candidate, unknown, unsupported,
does_not_exist y error son distintos. Las limitaciones conocidas incluyen
soportes conjuntos no productivos, continuación sin un dominio fuente superpuesto explícito,
entradas del principio del argumento sensibles a ramas, transformadas cuyo ROC SymPy
no puede establecer, y cambios generales multivariados de variables sin ramas/jacobianos
inversos proporcionados.
El trabajo simbólico continuo está limitado por los límites globales de AST/salida/tiempo de solver
y límites dedicados de contorno, dimensión conjunta, componentes de mezcla, orden de serie,
estadística de orden y ramas inversas. Aumenta el valor de MATHKERNEL_MAX_* correspondiente
explícitamente cuando una solicitud más grande es intencional.
# PDF → Laplace transform, preserving support and evidence ancestry
d = kernel.object_create("Distribution", {
"family": "exponential", "parameters": ["2"], "variable": "x",
})
r = kernel.apply(d.data["object_id"], "integral_transform", {
"transform": "laplace",
"transform_variable": "s",
"convention": "laplace_standard",
})
assert r.data["value"] == "2/(s + 2)"
Dinámica finita y análisis de PRNG
Una capacidad distintiva: análisis espectral exacto de sistemas dinámicos finitos
(X, μ, T, O) — construido para (y validado en) el análisis de estructura de PRNG.
- Suite Koopman — matriz de transporte Q, transferencia de observación C, visibilidad de modos ρ_O, tensores de estado rezagado (crudos/conectados), estadísticas observadas, diagnósticos IPR/entropía. Bases de Walsh para GF(2)^r, bases de caracteres para Z_M.
- Transferencia de observación estocástica (API de biblioteca) — contracciones exactas
FiniteJointLawpara leyes conjuntas latentes finitas arbitrarias; momentos/cumulantes de caminos Markov ordenados con los operadores de multiplicación requeridos; certificados de defecto de multiplicatividad por estado; y dilataciones deterministas exactas con ruido finito para núcleos Markov racionales. El piloto publicado de cuartetos de primates acompañante registra deliberadamente que el diagnóstico previo de división cero K3ST no sobrevive fuera de sus supuestos basados en grupos. - Tensores Markov generales ramificados (API de biblioteca) — leyes de suma-producto y cumulantes
exactos
FiniteMarkovTreeen árboles enraizados heterogéneos; certificados exactos de aplanamiento de aristasL M Rcon el límite agudo de rango de transición; canales de observación estocásticos locales como transformadas de Kronecker; recuperación exacta de inversa izquierda, testigos de colisión, fusión de sensores colectiva y límites de valores singulares condicionados al canal. El piloto de primates publicado distingue la identificabilidad algebraica de la estabilidad de muestra finita. - Inferencia filogenética estadística (API de biblioteca) — proyección al simplex de probabilidad; EM de canal conocido y recuperación ridge restringida; selección de regularización por validación retenida; covarianza multinomial e información de Fisher en el espacio tangente; verosimilitud multinomial de rango no negativo; diagnósticos de rango de covarianza-Wald; y puntuación de cuartetos segura ante empates. Experimentos controlados GM(4) cuantifican el origen compartido de valores singulares de la pérdida de visibilidad y la inestabilidad inversa. Dos pilotos fijos de datos publicados añaden comprobaciones de arranque por sitios y bloques móviles sin reclamar precisión competitiva amplia.
- Evaluación comparativa filogenética congelada (API de biblioteca) — ingesta de FASTA, PHYLIP relajado, NEXUS práctico y Newick; manifiestos SHA-256 portátiles de fuente; protocolo canónico y bloqueos de corpus; muestreo de cuartetos ciego a resultados a partir de divisiones de árboles de referencia; procedencia de sitios de casos completos; remuestreo de sitios, bloques circulares, estratificado por particiones y de partición completa; líneas base de rango-cola, distancia p y log-det normalizado; y resúmenes de corpus seguros ante empates. La ejecución incluida evalúa 22 unidades correlacionadas predeclaradas de dos alineamientos fuente publicados y una cuadrícula de estrés de verdad conocida de 1,920 alineamientos. Un bloqueo separado fija los primeros 20 conjuntos de datos BenchmarkAlignments elegibles antes de la adquisición; ese corpus externo está explícitamente pendiente en lugar de ser reemplazado silenciosamente.
- Detección de relaciones conectadas observables (API de biblioteca) —
leyes de interacción pura exactas y numéricas; espectros singulares de esperanza condicional ponderada;
visibilidad estocástica específica de modos; transferencia exacta de amplitud conectada por canal
local; retención de información chi-cuadrado y Fisher nula; certificados exactos de invisibilidad;
cotas de muestra necesarias finitas y suficientes constructivas; escalado de paridad binaria; y fusión
de sensores complementarios. El teorema controlado muestra que las pérdidas de visibilidad local se
multiplican en amplitud y se elevan al cuadrado en información, produciendo una ley de costo de
detección
s^(-2d)en la especialización binaria homogénea. - Visibilidad de subespacios de relación y diseño de sensores (API de biblioteca) — leyes de relación local finitas multiparamétricas; matrices de Fisher Gram latentes y observadas; valores propios generalizados de información retenida y direcciones principales de visibilidad; certificados exactos de colisión ciegos a observación; multiplicadores de información y muestra a nivel de dirección; selección de subconjuntos de sensores por rango, E-óptimo, traza, D-óptimo y pseudo-logdet; transferencia de partición empírica eficiente; y corrección de media de puntuación por covarianza de largo plazo. Un adaptador SkewDB congelado añade auditoría de fuente/esquema, divisiones de descubrimiento/validación/desafío por taxonomía retenida, preprocesamiento solo de descubrimiento, hash de fuente y un ejecutor de datos crudos de cierre ante fallos. El fixture SkewDB incluido es explícitamente sintético porque la carga completa actual no se adquirió en este entorno.
- Geometría de relaciones invariante a coordenadas (API de biblioteca) —
vectores tangentes de simplex finito con la métrica de Fisher intrínseca; empuje hacia adelante
tangente estocástico; valores propios generalizados de información retenida invariantes a coordenadas;
equivalencia exacta de puntuación/tangente; transferencia chi-cuadrado local exacta; cotas de muestra
necesarias minimax de peor dirección; conteos suficientes puntuales finitos de Bhattacharyya y basados
en retención; e intervalos de arranque iid, de bloques móviles y de conglomerados para espectros de
relaciones ordenados. Un adaptador SkewDB de resolución local bloqueado por SHA-256 convierte pistas
acumulativas documentadas
*_fit.csven incrementos de ventana y separa explícitamente las entradas genuinas del fixture generado parametrizado por fuente incluido. - Fourier finito — aritmética exacta en ℚ(ζ_L) mediante polinomios ciclotómicos: DFT sobre Z_M, transformadas de transferencia de salida, coeficientes de diferencia de dos puntos, transformadas de Fourier de medidas, correcciones de órbita.
- Búsqueda de cierres — relaciones irreducibles cortas seleccionadas por la dinámica:
cíclicas (
Σ k_j·a^j ≡ 0 mod m) y binarias (⊕ (L^{jK})ᵀ w_j = 0), encuentro en el medio con cotas de peso L1/Hamming. - GF(2^m) a partir de transiciones — reconstruir el campo (base cíclica de doble órbita, polinomio mínimo/reducción, verificado por Rabin) puramente a partir de las columnas de transición GF(2)-lineales de un generador.
- Dinámica condicionada por estado — acceso exacto a órbitas por estado
T^κ(x)(x): resolución de rezago mínimo, conversión de simetría a acceso, composición de cociclos, pruebas exhaustivas de cierre aditivo, mapas de acceso afines simbólicos, resolución de órbitas GF(2) de pasos de bebé/pasos gigantes, cierres predictivos de rezago gigante dispersos y descubrimiento de simetrías restringidas donde la prueba numérica solo clasifica candidatos — las pruebas de reescritura canónica o exhaustivas deciden.
El árbol scripts/ contiene reproducciones uniformes de extremo a extremo para más de 25 generadores
(familias xorshift/xoroshiro/xoroww, MT19937, Melg19937, WELL19937a, MRG32k3a,
PCG32/64(+fast), LXM, SplitMix64, SFC64, JSF64, Romu, Philox, Threefry, RXS-M-XS),
cada uno ejecutable desde cero con scripts/families/run_all.py y
scripts/companion/run_all.py. Los datos de referencia se incluyen en scripts/data/ — no se requieren
fixtures externos.
Matemáticas de ingeniería
MathKernel proporciona matemáticas de ingeniería tipadas para señales, sistemas de control y optimización con restricciones, preservando los mismos contratos de evidencia y persistencia que el núcleo simbólico.
Señales y espectros
Las señales continuas y muestreadas llevan dominios explícitos, cuadrículas de muestreo y unidades. Las representaciones espectrales están tipadas en lugar de tratarse como arreglos anónimos. Los filtros FIR/IIR y los diseños de filtros retienen coeficientes, convenciones y señales fuente, mientras que el estado de transmisión inmutable hace que el procesamiento bloque por bloque sea reproducible. Las operaciones de respuesta en frecuencia y en tiempo registran si usaron álgebra simbólica exacta o evaluación numérica.
Sistemas de control
Los modelos SISO y MIMO tipados admiten representaciones de espacio de estados y función de transferencia, conversión continua/discreta, polos y ceros, comprobaciones de estabilidad, discretización, construcción de controladores y construcción de observadores. El filtrado de Kalman LQR, LQR de horizonte finito, en estado estacionario, la composición LQG y los estados inmutables de predicción/actualización de Kalman retienen la ascendencia de planta/modelo y separan las comprobaciones algebraicas de los supuestos de modelado.
El MPC de horizonte finito con restricciones mantiene separadas las afirmaciones de factibilidad, optimalidad, invariancia terminal, factibilidad recursiva y estabilidad. El análisis en el dominio de la frecuencia incluye representaciones de Bode, Nyquist y lugar de raíces junto con respuestas temporales verificadas.
Optimización y certificados
Los programas lineales y cuadráticos pueden devolver testigos de optimalidad exactos/verificables donde el fragmento admitido lo permite. Los LP inviables pueden exponer certificados de Farkas y los problemas no acotados pueden exponer rayos de recesión. Los resultados de búsqueda MILP llevan árboles de prueba reproducibles en lugar de solo un valor incumbente. Los flujos de trabajo cónicos y de restricciones cuadráticas admiten conos de producto SOCP/SDP acotados y certificados de estilo lagrangiano en sus fragmentos declarados.
Los solucionadores candidatos nativos externos se aíslan en procesos nuevos con solicitudes acotadas y terminación por tiempo de espera estricto. La generación de candidatos y la verificación de certificados son pasos distintos: un solucionador que encuentra un punto no establece por sí mismo una afirmación más fuerte de lo que el verificador puede comprobar.
Geometría y topología
Geometría diferencial y cálculo tensorial
Los objetos inmutables Manifold, Chart y Metric alimentan salidas tipadas GeometryTensor, Connection y GeodesicSystem. Las operaciones métricas calculan métricas inversas, símbolos de Christoffel, curvatura de Riemann/Ricci/escalar/Einstein y ecuaciones geodésicas afines. Las comprobaciones simbólicas exactas cubren identidades inversas, libertad de torsión, compatibilidad métrica, simetrías de Riemann, la primera identidad de Bianchi y la identidad de Bianchi contraída. Los dominios de cartas y las condiciones de no degeneración métrica permanecen explícitos.
Los objetos direccionales CoordinateMap llevan jacobianos explícitos y comprobaciones de composición inversa. Los objetos densos TensorField conscientes de la varianza y los objetos dispersos canónicos DifferentialForm admiten derivadas covariantes y de Lie, productos cuña, derivadas exteriores, productos interiores, retrocesos y estrellas de Hodge. Las comprobaciones incluyen conmutatividad graduada, d²=0, conmutación de retroceso con d, compatibilidad métrica, composición de mapas de coordenadas y el signo de doble estrella de Hodge cuando se proporciona la firma métrica. La orientación y la firma nunca se adivinan.
Geometría computacional
Los objetos Point, PointSet, Polygon, de semiespacio Polytope, Triangulation y derivados VoronoiDiagram proporcionan predicados exactos de orientación, incírculo e intersección de segmentos, cascos convexos de cadena monótona, contención por enrollamiento, vecinos más cercanos exactos de distancia al cuadrado, recorte de orejas certificado, recorte de polígonos convexos, triangulación de Delaunay de circuncírculo vacío y duales de Voronoi finitos con rayos no acotados explícitos. Los predicados decimales usan filtros de error de punto flotante conservadores; cuando la topología no se puede establecer, el resultado es explícitamente ambiguo en lugar de promoverse a una clasificación exacta.
Topología algebraica
Los objetos finitos exactos SimplicialComplex, CubicalComplex e integrales ChainComplex expanden celdas a cierres de caras canónicos y derivan matrices de frontera orientadas. Los complejos verifican boundary[k-1] * boundary[k] = 0 antes de intentar la homología. homology calcula rangos libres y torsión entera sobre Z mediante reducciones certificadas de núcleo/cociente de Smith, y números de Betti exactos más ciclos representativos sobre Q o GF(p). boundary_matrix, chain_complex y euler_characteristic exponen bases ordenadas y la comprobación cruzada de Euler-Poincaré.
Las triangulaciones exactas verificadas se pueden convertir en complejos simpliciales canónicos y componerse directamente con operaciones de homología; las triangulaciones numéricas o refutadas no pueden cruzar ese límite de exactitud. La expansión de cierres está acotada antes de que el crecimiento combinatorio pueda exceder los límites de topología configurados. No se reivindican homología persistente, productos de cohomología ni inferencia de complejos infinitos/CW.
Estadística y modelado estocástico
Muestras y estadísticas descriptivas
StatisticalSample almacena una matriz rectangular no vacía de observaciones reales concretas finitas, etiquetas de variables únicas, identificadores de observación únicos opcionales y metadatos explícitos de muestreo/población/diseño. describe deriva momentos numéricos exactos o limitados por ascendencia y estadísticas de orden tipo 7; covariance deriva productos cruzados centrados con normalización de muestra o población; empirical_distribution preserva conteos de frecuencia exactos y probabilidades racionales; y evidence_profile audita el propio límite de evidencia.
La evidencia requerida establece únicamente cálculos sobre las observaciones almacenadas. Los metadatos de muestreo, el respaldo empírico y los supuestos del modelo permanecen en registros de evidencia diagnóstica separados, mientras que la generalización poblacional y la validez del modelo siguen explícitamente sin establecerse. Se rechazan los valores faltantes, las observaciones simbólicas no resueltas y la imputación silenciosa. La entrada decimal no puede mejorar, los límites de recursos se verifican antes de trabajos costosos, y cada objeto derivado conserva su fuente a través de la persistencia y el reinicio.
Modelos lineales generalizados
Los objetos inmutables GeneralizedLinearModel se vinculan a muestras almacenadas y producen objetos GLMFit solo derivados. Los pares canónicos admitidos son Gaussiano/identidad, binomial/logit y Poisson/log. verify verifica el dominio de respuesta, el rango del diseño y los grados de libertad residuales; fit reporta coeficientes ordenados, covarianza/errores estándar, medias condicionales ajustadas, desviación, desviación nula, dispersión, convergencia, residual de puntuación y condicionamiento. Los ajustes admiten de forma independiente verify, diagnostics y predict.
Los modelos gaussianos de entrada exacta utilizan productos cruzados suficientes y ecuaciones normales exactas. Los ajustes gaussianos numéricos utilizan mínimos cuadrados float64 verificados; los ajustes logísticos y de Poisson utilizan IRLS float64 determinista. La deficiencia de rango, los dominios de respuesta inválidos o degenerados, la no convergencia, la información singular/mal condicionada y la separación completa/cuasi detectada fallan de forma cerrada sin un objeto de ajuste. No hay término de cresta, eliminación de filas, imputación o sustitución de familia/enlace en silencio. Las afirmaciones de coeficiente, covarianza, desviación y predicción permanecen condicionadas a la muestra/diseño almacenados; la validez del modelo, la generalización poblacional y los efectos causales no se infieren.
Pruebas no paramétricas, pruebas de permutación y bootstrap
Las muestras almacenadas admiten mann_whitney, wilcoxon, kruskal_wallis, ks_2samp, spearman y kendall, con rangos promedio explícitos y correcciones de empates. method="auto" realiza la enumeración completa exacta de signos/etiquetas/permutaciones solo cuando tanto el estado como las estimaciones de trabajo se ajustan a los límites configurados; de lo contrario, el resultado nombra su aproximación normal, chi-cuadrado, Kolmogorov o t de Student. Así, un valor p exacto es un cálculo nulo condicional exacto para las observaciones almacenadas, mientras que un valor p asintótico sigue siendo evidencia numérica sin un teorema de error de muestra finita.
permutation_test admite diferencias de media/mediana mediante enumeración exacta o Monte Carlo PCG64 con semilla explícita y valor p de suma uno. bootstrap admite intervalos percentiles de media/mediana con una semilla uint64 obligatoria, extracciones acotadas y lotes con límite de memoria. Los resultados simulados registran algoritmo aleatorio, semilla, número de extracciones y configuración de reproducción. La intercambiabilidad, el diseño de muestreo, la validez asintótica, la cobertura poblacional y la interpretación causal siguen siendo supuestos separados o afirmaciones no establecidas.
Análisis de supervivencia
SurvivalDataset almacena duraciones, indicadores de eventos binarios exactos, tiempos opcionales de entrada tardía y estratos opcionales dentro de una muestra estadística inmutable. kaplan_meier construye conjuntos de riesgo exactos y valores de producto-límite junto con errores estándar numéricos de Greenwood e intervalos log-log bilaterales. Las entradas multiestrato requieren un estrato explícito, y survival_at consulta la curva escalonada continua por la derecha.
CoxProportionalHazardsModel proporciona una superficie de Cox no estratificada con empates explícitos de Efron o Breslow. Su ajuste determinista de Newton float64 utiliza búsqueda de línea monótona y rechaza casos con deficiencia de rango, eventos escasos, no convergentes, singulares, sobrecondicionados o similares a separación. CoxPHFit registra coeficientes/razones de riesgo, covarianza/errores estándar, verosimilitud parcial, residual de puntuación, riesgo basal, concordancia y correlaciones temporales de Schoenfeld, con verificación de reproducción, diagnósticos y predicción de riesgo parcial acotada. La censura independiente, los riesgos proporcionales, la generalización poblacional y la causalidad siguen siendo supuestos o no establecidos.
Modelos de series temporales y pronósticos
TimeSeriesDataset preserva el orden de filas, columnas distintas de tiempo/valor, marcas de tiempo estrictas, política de rechazo de faltantes y espaciado regular detectado. acf de fuente exacta utiliza un denominador centrado común de retraso cero y pacf utiliza la recursión de Durbin–Levinson. stationarity_test proporciona una regresión ADF numérica de caso constante con valores críticos asintóticos nombrados en lugar de inventar un valor p exacto o afirmar que la estacionariedad está probada.
TimeSeriesModel cubre órdenes AR, MA, ARMA, ARIMA y GARCH, elección de constante, innovaciones gaussianas e inicialización. Los ajustes de la familia ARMA utilizan optimización acotada de suma de cuadrados condicional; GARCH utiliza verosimilitud gaussiana restringida con varianza positiva y persistencia inferior a uno. Los ajustes derivados registran coeficientes, series residuales/ajustadas, varianza condicional, raíces, verosimilitud, AIC/BIC y convergencia, con diagnósticos de Ljung–Box/Jarque–Bera. Los pronósticos derivan tiempos futuros regulares, medias recursivas e intervalos gaussianos utilizando respuestas de impulso ARIMA o recursión de varianza GARCH. El espaciado irregular puede analizarse pero no ajustarse.
Procesos estocásticos
Los objetos inmutables PoissonProcess, WienerProcess, GaussianProcess y ContinuousTimeMarkovChain exponen leyes de dimensión finita y artefactos derivados verificados. Las masas/momentos de conteo de Poisson y las medias/covarianzas de Wiener son simbólicos o exactos. Las leyes finitas de procesos gaussianos admiten núcleos RBF, Matérn-3/2, lineal y Browniano con verificaciones numéricas de PSD; el condicionamiento utiliza soluciones de Cholesky float64 acotadas, varianza explícita de ruido de observación y jitter almacenado opcional sin ajustar hiperparámetros en silencio. La verificación CTMC verifica el generador y los axiomas de la ley inicial exactamente; las transiciones utilizan una exponencial matricial verificada, mientras que las leyes estacionarias utilizan un sistema exacto de espacio nulo izquierdo y preservan la no unicidad.
Los incrementos independientes/estacionarios, la continuidad, la gaussianidad, la idoneidad del núcleo y la homogeneidad temporal siguen siendo supuestos de modelo declarados, no hechos establecidos por cálculo.
Ecuaciones diferenciales estocásticas
StochasticDifferentialEquation admite sistemas de Itô vectoriales con alcance de símbolos declarado, vector de deriva, matriz de difusión completa de estado por ruido, estado inicial concreto e intervalo finito. Euler–Maruyama admite estados vectoriales y difusión completa. Milstein está restringido a estado escalar/ruido escalar y utiliza la derivada simbólica de difusión; los casos multidimensionales no admitidos se rechazan en lugar de sustituir silenciosamente otro esquema.
La simulación registra la cuadrícula de pasos exacta cuando es posible, trayectorias float64, algoritmo/semilla/flujo PCG64, momentos muestrales terminales y órdenes nominales fuerte/débil. Las salidas grandes exponen metadatos compactos más consultas acotadas de trayectoria/terminal. Los estudios de convergencia acoplados reutilizan un flujo Browniano más fino en múltiples tamaños de paso y reportan convergencia RMS terminal observada cuando está definida. La simulación y la convergencia siguen siendo numéricas/empíricas; los órdenes nominales, la existencia, la unicidad y la regularidad son supuestos, no pruebas.
Evidencia estadística y persistencia
En todos los objetos estadísticos/estocásticos, la evidencia exacta, simbólica, asintótica, numérica, empírica y de modelo sigue siendo distinta. Los tipos derivados son solo de salida, la reproducción opera bajo límites actuales, la ascendencia decimal no puede mejorar, el JSON persistido se verifica por integridad antes de decodificar, y los campos almacenados de tipo/clase/fuente se concilian para prevenir la sustitución de fuente entre tipos.
PDEs y elementos finitos adaptativos
Representación y clasificación de PDEs
Los problemas de PDE tipados admiten sistemas escalares y acoplados, variables independientes/dependientes declaradas, multiíndices de derivadas, coeficientes/parámetros y condiciones iniciales/de frontera explícitas. El análisis de parte principal clasifica el sistema representado solo dentro del fragmento simbólico declarado, y las verificaciones de compatibilidad de trazas distinguen la información de frontera representada de afirmaciones más fuertes como existencia, unicidad, regularidad o buen planteamiento.
Formas débiles
Los artefactos PDEFunctionSpace, PDEMeasure, WeakIntegralTerm, IntegrationByPartsStep y solo de salida WeakForm representan formulaciones débiles explícitamente. derive_weak_form requiere variables de integración, espacios de prueba ordenados, espacios de prueba, índices de traza de frontera y transferencias seleccionadas de términos/coordenadas; no adivina espacios analíticos ni integra términos en silencio.
La integración por partes con coeficientes variables conserva la regla del producto completa, almacenando términos de volumen de prueba diferenciada y derivada de coeficiente por separado. Cada transferencia emite caras de frontera orientadas. Los términos de frontera que se anulan bajo trazas de prueba cero declaradas permanecen representados y se marcan como tales. Los índices de Dirichlet, Neumann/Robin y periódicos se registran como particiones esenciales, naturales y periódicas. WeakForm.verify reconstruye espacios, medidas, términos de volumen/frontera, signos, derivadas de regla de producto, particiones y pasos de derivación a partir de la PDE fuente. La afirmación verificada es la identidad integral representada bajo supuestos declarados, no un teorema de resolubilidad o regularidad.
Mallas, elementos de referencia y espacios de elementos finitos
FEMMesh admite símplices de intervalo, triángulo y tetraedro. La construcción verifica conectividad acotada, no degeneración, orientación positiva canónica, incidencia de facetas de frontera/interior, propiedad de frontera inducida y componentes conexas de celdas. Un Triangulation almacenado compatible puede proporcionar conectividad de triángulos preservando la geometría y la ascendencia de forma débil. La reproducción combinatoria no infiere no superposición geométrica ni calidad de aproximación.
reference_element proporciona símplices unitarios canónicos. basis deriva funciones y gradientes de Lagrange P1 nodales simbólicos y verifica la propiedad de Kronecker, la partición de la unidad y la suma de gradientes. quadrature suministra reglas de momentos exactos acotadas para los grados de símplex admitidos. finite_element_space construye espacios C0 de DOF de vértice P1 con conectividad local a global explícita y DOF de frontera esenciales. Los objetos derivados son reproducibles y solo de salida.
Ensamblaje y soluciones algebraicas
AssembledSystem y FEMSolution admiten formas débiles estacionarias lineales escalares en símplices P1 afines. El ensamblaje almacena matrices/vectores locales densos y determinantes jacobianos, fusiona la matriz global en entradas dispersas ordenadas, integra términos de faceta de Neumann/Robin admitidos y realiza eliminación simétrica documentada para DOF de Dirichlet conservando sistemas crudos y transformados. Las sustituciones concretas resuelven los parámetros restantes de PDE a través de MathIR restringido.
El ensamblaje distingue la integración exacta de una suma de cuadratura finita exacta. La cuadratura de orden insuficiente o no polinomial puede aún definir un sistema algebraico reproducible, pero quadrature_exact=false registra la limitación. Las segundas derivadas fuertes no admitidas, derivadas temporales, campos acoplados/no lineales, restricciones periódicas, parámetros no resueltos y flujos de frontera faltantes fallan de forma cerrada.
Las soluciones seleccionan análisis exacto de rango/rango aumentado o una ruta numérica dispersa explícita de SciPy. FEMSolution registra unique, ill_conditioned, singular_inconsistent, singular_underdetermined o singular_least_squares, junto con residual y diagnósticos de condicionamiento. La verificación establece solo el sistema de dimensión finita transformado y el resultado del solucionador, nunca un teorema de solución de PDE continua o un límite de error de continuo.
Estimación de error y adaptividad
FEMSolution.estimate_error proporciona indicadores de residual-salto para soluciones P1 completas únicas o mal condicionadas en su fragmento de difusión estacionaria escalar admitido. Cada CellErrorIndicator conserva residual fuerte ponderado por diámetro, contribución de salto conormal interior, contribución de frontera natural y total. FEMErrorEstimate almacena valores de estimador local/global, exactitud de cuadratura y residual algebraico por separado, y siempre registra rigorous_error_bound=false; las constantes de confiabilidad y eficiencia no se infieren.
FEMErrorEstimate.mark implementa políticas deterministas de Dörfler y de máximo. RefinementMarking.refine aplica refinamiento rojo de triángulos y propaga el cierre conforme a través de aristas compartidas. RefinedMesh registra celdas solicitadas/de cierre y mapeos hijo-a-padre; MeshTransfer registra valores nodales P1 refinados como combinaciones afines explícitas de grados de libertad padre. Las mallas refinadas pueden reingresar a la cadena de base, cuadratura, espacio, ensamblaje, resolución y estimación.
FEMErrorEstimate.compare acepta pares directos de refinamiento padre/hijo y reporta razones de estimador y tasas observadas de dos mallas. FEMConvergenceObservation es evidencia explícitamente empírica sobre una secuencia de estimadores, no un teorema de convergencia ni una cota de error en el continuo.
Inferencia de relaciones y geometría de la información
Inferencia compuesta de relaciones
mathkernel.composite_relation_inference proporciona una prueba de puntuación cuadrática para un subespacio de relaciones visible completo. Las puntuaciones observadas generalizadas se blanquean bajo la ley nominal y el estadístico es la norma al cuadrado de su media muestral. Un argumento finito de puntuación acotada proporciona una garantía conservadora con dependencia explícita de la dimensión de la relación, el valor propio más débil de información retenida, el radio de perturbación y el límite de puntuación.
El mismo módulo calcula información objetivo ajustada por molestias mediante complementos de Schur de Fisher latentes y observados. Reporta confusión exacta post-observación cuando una dirección objetivo puede reproducirse mediante variación de molestias. Para valores propios de información repetidos o casi repetidos, se adjunta incertidumbre bootstrap a subespacios propios invariantes mediante ángulos principales en lugar de vectores propios individuales arbitrarios. Están disponibles intervalos de espectro ordenado estudentizados, heurísticas de bloques circulares dependientes de la información, modos de covarianza nominal/empírico/HAC y garantías de especificación errónea acotada por norma, con sus supuestos registrados.
Inferencia robusta de relaciones
mathkernel.robust_relation_inference proporciona inferencia cuadrática limitada al modelo, proyecciones de molestias aprendidas, relaciones residuales ortogonales y estimación de covarianza de largo plazo pre-blanqueada por VAR.
| API de Python | Función y límite de evidencia |
|---|---|
quadratic_minimax_bounds | Tasas inferior/superior de secuencia gaussiana usando el espectro de información inverso; cota separada finita para estadístico U iid bajo una envolvente de covarianza justificada |
gaussian_quadratic_test | Prueba de cuadrado ponderado con umbral finito de Chernoff gaussiano |
quadratic_u_test | Estadístico de pares insesgado O(Nr); calibración finita de Cantelli para puntuaciones iid de nulo conocido |
prewhitened_long_run_covariance | VAR(1), ancho de banda automático de Bartlett, recoloreo y diagnósticos de persistencia; los supuestos de consistencia siguen siendo necesarios |
quadratic_moment_test | Prueba de Wald asintótica de rango completo con covarianza empírica o suministrada; la covarianza singular se rechaza |
relation_folds | Pliegues iid reproducibles, que preservan grupos o contiguos |
crossfit_nuisance_projection | Estimación de proyección de molestias fuera de pliegue en un tramo candidato declarado |
crossfit_residual_relations | Momentos cruzados residuales ortogonales con medias condicionales aprendidas, aprendices personalizados y brechas de exclusión |
Estas API de investigación permanecen limitadas numérica/modelo a menos que se devuelva explícitamente una garantía finita más fuerte. No adquieren etiquetas de prueba formal o certificación de intervalos simplemente porque se componen con otros objetos de MathKernel.
Visibilidad de relaciones, diseño de sensores y geometría de la información
La pila de análisis de relaciones también incluye visibilidad exacta de relaciones observables, cálculos de retención de información, diagnósticos de costo muestral, geometría de Fisher multi-relación, objetivos de diseño de sensores, representaciones tangentes invariantes a coordenadas, límites de prueba locales e incertidumbre para espectros de información. Las direcciones numéricas casi nulas se mantienen distintas de las direcciones ciegas matemáticamente exactas.
Rendimiento: numba · CUDA · paralelismo
| Carga de trabajo | Ruta rápida CPU | Ruta GPU | Paralelo |
|---|---|---|---|
| Tamiz de Collatz | njit (n ≤ 31) | CUDA RawKernel | grupo de procesos persistente |
| Barrido de cuboides | njit escaneo de pares de patas + prefiltro QR | CUDA RawKernel | grupo de procesos |
| GF(2^m) ≤ 1024 | núcleos njit de n-limb (uint64×N) | — | — |
| Lote de enteros | núcleos njit de arreglos | — | grupo de procesos persistente, tamaño de fragmento adaptativo |
| BFS/componentes de grafos | recorrido CSR njit, certificado re-verificado | — | — |
| GF(p^m), p < 2^24, m ≤ 64 | multiplicación/módulo polinomial njit uint64 | — | — |
| Validación de tabla de Cayley | escaneo de axiomas njit | — | — |
| Extensión de recurrencia | njit int64 verificado, respaldo bigint | — | — |
| FWHT | mariposa njit int64 | — | — |
| Búsqueda de cierre | njit MITM (int64/uint64) | — | — |
| Dinámica de Koopman / finita | numpy complex128 | CuPy matmul | — |
| DAG de obligaciones | — | — | oleadas de hilos |
| Barridos largos | — | — | grupo de trabajos asíncrono |
Los tipos simbólicos exactos (Fraction, CyclotomicNumber) son deliberadamente Python puro:
un cero de visibilidad o una cancelación de cierre debe seguir siendo una prueba. Existen gemelos numéricos
donde la escala lo exige y siempre llevan trust: numeric.
Contrato de expansión. Los nuevos dominios deben diseñar niveles de verificación y
rendimiento juntos desde el inicio: semántica tipada exacta y límites,
un certificado verificable de forma independiente para cada afirmación VERIFIED, y — donde la
carga de trabajo sea lo suficientemente regular — una ruta rápida Numba/proceso/GPU detrás de un fragmento
de exactitud estrecho con respaldo automático en Python. Las rutas rápidas deben re-verificarse o
probarse diferencialmente contra la implementación de referencia y deben registrar el backend
seleccionado en los metadatos de evidencia; nunca pueden elevar la confianza más allá de la prueba subyacente.
La descarga a GPU es obligatoria solo para cargas de trabajo regulares exactas por dispositivo; los
algoritmos irregulares de precisión arbitraria documentan los niveles considerados en su lugar.
Optimización que preserva la corrección
MathKernel optimiza solo donde el contrato matemático sobrevive a la optimización. Las cargas de trabajo regulares de enteros/arreglos acotados usan rutas Numba, proceso o GPU con verificaciones diferenciales y respaldos protegidos. Las cargas de trabajo simbólicas exactas permanecen en representaciones exactas cuando convertirlas a punto flotante debilitaría la afirmación. La creación de perfiles se usa para eliminar trabajo simbólico repetido, elevar cálculos invariantes, almacenar en caché certificados reproducibles y reemplazar pasos de verificación superlineales evitables sin cambiar la evidencia matemática almacenada. La selección del backend se registra en los metadatos de evidencia y nunca eleva la confianza por encima del cálculo o certificado subyacente.
Visualización y artefactos portátiles
mathkernel_viz convierte objetos y resultados de MathKernel en artefactos interactivos
que portan evidencia. La visualización es posterior a las matemáticas: consume datos fuente tipados o
un MultimodalProjection, registra transformaciones de presentación y nunca mejora la
evidencia fuente simplemente porque se usa una forma gráfica particular.
import mathkernel_projection as mkp
import mathkernel_viz as viz
projection = mkp.create_projection(
"matrix",
{"matrix": [[1, 2], [3, 4]]},
trust="exact",
)
doc = viz.from_projection(projection)
viz.export_html(doc, "matrix.html", mode="portable")
La API de tablero de nivel inferior sigue disponible para composición directa:
import mathkernel_viz as viz
doc = viz.dashboard("My result", cols=2)
viz.add_point_cloud(doc, points, trust="numeric")
viz.add_histogram(doc, values, bins=128)
viz.add_select(doc, "lag", [
{"label": "k=4", "value": {"embed": {"lags": [0, 4, 8]}}}
])
viz.export_html(doc, "out.html", mode="portable")
- Bloques de construcción, no monolitos — los artefactos componen paneles reutilizables como
point_cloud_3d,trajectory_3d,surface_3d,vector_field_3d,plot2d,histogram,heatmap,dag,metric_grid,data_table,textyselect. - IR neutral al renderizador — el
VisualizationDocumentversionado es consumido por SVG puro en Python, matplotlib PNG/PDF opcional y el renderizador HTML+Three.js. - 3D interactivo — órbita/pan/zoom e inspección al pasar el cursor de identidad y confianza.
- HTML portátil — un
.htmlautocontenido con conjuntos de datos incrustados, procedencia, metadatos de reproducibilidad y tiempo de ejecución del visor; no se requiere servidor ni CDN. - Preservación de evidencia — la confianza de bloques/series/conjuntos de datos se hereda de forma conservadora; la visualización certificada por intervalos solo se usa cuando la fuente misma porta ese soporte.
- Integridad y determinismo — se exponen SHA-256 de carga útil y por conjunto de datos, y entradas idénticas producen artefactos deterministas.
- Límite de presentación seguro — CSP, etiquetas escapadas, sin
eval, límites de conjuntos de datos, y MathIR tratado como datos en lugar de código ejecutable.
Proyecciones multimodales compartidas
La capa compartida mathkernel_projection define familias canónicas de proyección
matemática que pueden alimentar visualización, sonificación o un artefacto de investigación combinado.
Esto evita que cada renderizador invente su propia interpretación de una matriz, malla,
grafo, campo, distribución u objeto de alta dimensión.
Un MultimodalProjection registra:
- linaje fuente (
SourceRef); - familia de proyección y carga útil estructurada;
- coordenadas, unidades y etiquetas;
- supuestos y referencias de evidencia;
- procedencia de transformación determinista;
- parámetros explícitos de base, rebanada, recorrido u ordenamiento;
- dimensionalidad de salida y pérdida de información declarada.
Las familias canónicas cubren campos escalares/vectoriales; conjuntos de puntos/nubes; curvas, superficies y trayectorias; secuencias y distribuciones; matrices y tensores; grafos, grafos de evidencia, árboles de expresión y árboles de certificados; espectros y campos de valores complejos; regiones y conjuntos implícitos; mallas y complejos geométricos; soluciones de ODE/PDE y sistemas dinámicos; objetos de optimización e inferencia estadística; estructuras de campo finito/GF(2); geometría de relaciones/información; conjuntos, particiones y objetos por partes; cantidades con unidades; conjuntos; y proyecciones explícitas de alta dimensión.
Para dimensión fuente mayor que tres, un método de proyección y la dimensionalidad de salida deben ser explícitos. La selección de coordenadas, una base declarada, reducción tipo PCA o una proyección espectral específica del dominio son transformaciones que deben registrarse; un renderizador no puede decidir silenciosamente qué vista es canónica.
Un registro de adaptadores de resultados (mathkernel_projection.result_adapters) mapea objetos
tipados almacenados y cargas útiles de resultados planos a estas familias automáticamente. Los adaptadores
son funciones de extracción puras: nunca recalculan matemáticas, nunca mejoran
la confianza y declaran cualquier elección de presentación (rejillas de muestreo, espectros solo de magnitud,
selección de canales, reducción de covarianza a banda) en parameters y
information_loss. math_visualize(object_id=...) y
math_projection_create(source_object_id=...) usan el registro para elegir la
proyección canónica para señales, espectros, filtros, mapas de polos-ceros, respuestas
de frecuencia, lugares de raíces, respuestas temporales, distribuciones (las densidades simbólicas se muestrean
en una ventana declarada), distribuciones empíricas/discretas, muestras estadísticas,
ajustes GLM, estimaciones de Kaplan-Meier, riesgos base de Cox, diagnósticos ACF/PACF,
ajustes de series temporales, grafos y árboles de recorrido, resultados de optimización, conjuntos
ODE/SDE, mallas FEM/soluciones/indicadores de error/observaciones de convergencia,
patrones de dispersión de sistemas ensamblados, rejillas PDE, conjuntos de puntos, polígonos, triangulaciones,
diagramas de Voronoi, funciones generadoras, tablas de Cayley, contornos, mapas de singularidades,
particiones de subgrupos/coset/órbitas, conteos combinatorios y cantidades unitarias.
Los tipos de objetos no registrados fallan con un error tipado en lugar de una vista inventada.
Los grafos de evidencia son de primera clase: las relaciones afirmación -> evidencia -> supuesto/fuente se pueden visualizar directamente, haciendo que la estructura de verificación de MathKernel sea inspeccionable en lugar de ocultarla en metadatos. Las proyecciones de valores complejos retienen la estructura de magnitud/fase, y las proyecciones de malla/campo preservan la entidad geométrica a la que pertenece cada valor.
Linaje de artefactos y presentación científica
mathkernel_viz, mathkernel_sonify y mathkernel_multimodal comparten la capa semántica mathkernel_artifacts. MathKernelArtifact porta linaje fuente tipado, evidencia/certificados, transformaciones de presentación, anotaciones científicas/perceptivas, metadatos de reproducibilidad y sincronización visual/audio. mathkernel_viz.visualize(result) adjunta linaje estructurado determinista a conjuntos de datos y series visuales, mientras que mathkernel_viz.to_artifact(doc, result=...) promueve un documento visual al mismo modelo de artefacto que porta evidencia utilizado por exportaciones multimodales. La presentación permanece posterior a las matemáticas y no puede mejorar la confianza fuente.
Sonificación científica (mathkernel-sonify)
mathkernel_sonify es el hermano auditivo de mathkernel_viz. Consume el mismo
linaje de fuente y el contrato MultimodalProjection, mientras que SonificationDocument posee el
mapeo auditivo en sí. El resultado matemático permanece intacto.
import mathkernel_projection as mkp
import mathkernel_sonify as son
projection = mkp.create_projection(
"spectrum",
{"amplitudes": [1.0, 0.42, 0.17], "phases": [0.0, 0.3, -0.2]},
trust="numeric",
)
audio = son.projection_sonification(projection)
son.write_wav(audio, "spectrum.wav")
son.export_html(audio, "spectrum.html")
El IR registra cada mapeo de valor a audio como procedencia declarativa. Los objetos estructurados nunca se aplanan silenciosamente: los escaneos de matrices registran el orden de filas/columnas; la sonificación de tensores registra el corte/orden seleccionado; los grafos registran el recorrido o la reducción de grado; las mallas registran la reducción geométrica; los objetos complejos preservan el mapeo de magnitud y fase; los rastreos de optimización, las distribuciones bootstrap/nulas, los espectros de relación y los ordenamientos de conjuntos son igualmente explícitos.
Los adaptadores integrados cubren síntesis aditiva armónica/Fourier, escaneos secuenciales, comparación estéreo predicción-vs-observación, sonificación residual y mapeos estructurados conscientes de la proyección. El renderizado offline PCM/WAV es determinista, rechaza el aliasing silencioso de Nyquist y aplica límites explícitos de normalización/pico. El exportador WebAudio es un único archivo HTML offline sin dependencia de red.
Regla científica: un patrón audible es un candidato perceptual, no evidencia matemática. Cualquier patrón descubierto al escuchar debe validarse cuantitativamente, exactamente, formalmente o empíricamente a través de MathKernel.
Artefactos multimodales unificados (mathkernel-multimodal)
mathkernel_multimodal combina visualización y sonificación derivadas de la misma
fuente/proyección en un MathKernelArtifact portátil. La ascendencia compartida de SourceRef
permite la sincronización automática entre modalidades sin debilitar el modelo de confianza
matemática.
import mathkernel_multimodal as mkm
artifact = mkm.build_artifact(
title="Result",
visualizations=[viz_doc],
sonifications=[son_doc],
mathkernel_version="current",
)
mkm.export_html(artifact, "result.html")
- los bloques visuales pueden resaltarse durante la reproducción de audio vinculada y el audio vinculado puede buscar desde un bloque visual;
- una superficie de inspector expone Resultado, Evidencia, Procedencia, Datos, Reproducción, Mapeo Visual, Mapeo de Audio, Sincronización y Anotaciones;
- la verificación de carga útil y los hashes de integridad del documento permanecen disponibles en el artefacto exportado;
- la salida portátil funciona desde
file://, sin necesidad de un servidor MathKernel en ejecución; - la confianza del artefacto sigue siendo la confianza de fuente/miembro justificada más débil.
A través de MCP, los artefactos de investigación pueden ensamblarse a partir de objetos de visualización y sonificación almacenados y exportarse como un único archivo autocontenido.
Superficie de herramientas MCP
Las 167 herramientas (clic para expandir)
| Grupo | Herramientas |
|---|---|
| Descubrimiento | math_capabilities, math_capability_query, math_result_resource_get |
| Matemáticas tipadas | math_object_create, math_object_get, math_apply — superficie compositiva completa tabulada arriba, incluyendo geometría, señales/control, optimización certificada, estadística/sistemas estocásticos y representación general de PDE |
| Análisis sintáctico | math_parse, math_parse_latex, math_get, math_substitute, math_infer_structure |
| Álgebra | math_simplify, math_solve, math_solve_system |
| Cálculo | math_differentiate, math_integrate, math_limit, math_series, math_summation, math_product |
| Numérico | math_numeric_evaluate, math_interval_evaluate |
| Matrices | math_matrix_create, math_matrix_get, math_matrix_det, math_matrix_inverse, math_matrix_transpose, math_matrix_multiply, math_matrix_rank, math_matrix_rref, math_matrix_eigenvalues, math_matrix_solve |
| Contexto | math_context_create, math_context_infer, math_context_check |
| Razonamiento | math_analyze, math_plan, math_plan_get, math_execute_plan, math_reason, math_execution_get, math_prove_equivalence, math_counterexample |
| Generación de código | math_codegen, math_verify_code, math_execute_code |
| Enteros | math_integer_analyze, math_integer_compute, math_integer_batch |
| Barridos | math_collatz_sieve, math_cuboid_sweep |
| Trabajos | math_job_submit, math_job_status, math_job_result, math_job_list |
| GF(2^m) | math_gf2m_create, math_gf2m_from_transition, math_gf2m_compute, math_gf2m_coords, math_gf2m_root_jump_rows, math_gf2m_closure_roots, math_gf2m_jump_rows |
| GF(2) | math_gf2_rank, math_gf2_nullspace, math_gf2_carryfree_cols, math_gf2_minpoly |
| Transformadas | math_fwht |
| Dinámica finita | math_finite_system_create, math_koopman_matrix, math_koopman_transfer, math_koopman_visibility, math_koopman_lagged, math_koopman_observed, math_koopman_diagnostics, math_finite_fourier_compute, math_closure_search, math_cumulant_compute |
| Dinámica condicionada | math_conditioned_access_solve, math_conditioned_symmetry_access, math_conditioned_access_compose, math_conditioned_closure, math_symbolic_conditioned_access, math_affine_conditioned_access, math_gf2_conditioned_access, math_gf2_predictive_closure, math_synthesize_conditioned_closures, math_synthesize_gf2_vector_conditioned_access, math_discover_structural_conditioned_closure, math_discover_factor_swap_conditioned_closure |
| Proyecciones multimodales | math_projection_catalog, math_projection_create, math_projection_describe |
| Visualización | math_visualize, math_visualize_dag, math_render_koopman, math_visualize_projection, math_export_artifact |
| Sonificación | math_sonify, math_sonify_compare, math_sonification_describe, math_sonify_projection, math_export_audio |
| Artefactos multimodales | math_research_artifact_create, math_export_research_artifact |
| Conjuntos y lógica | math_set_create, math_set_op, math_set_membership, math_quantifier_check, math_quantifier_eliminate, math_quantifier_eliminate_batch |
| Polinomios | math_poly_groebner, math_poly_divide, math_poly_resultant, math_poly_discriminant, math_poly_factor, math_ideal_membership, math_poly_groebner_batch |
| Probabilidad | math_prob_rv_create, math_prob_expectation, math_prob_variance, math_prob_covariance, math_prob_bayes, math_prob_markov_stationary, math_prob_markov_hitting_time, math_prob_sample, math_prob_distribution |
| Estadística | math_stats_moments, math_stats_order, math_stats_regression, math_stats_correlation, math_stats_ttest, math_stats_chi2, math_stats_confidence_interval, math_stats_batch_moments |
| Tensores | math_tensor_create, math_tensor_get, math_tensor_contract, math_tensor_solve |
| Numéricos | math_root_find, math_root_scan, math_quadrature |
| ODE/PDE | math_ode_solve, math_ode_solve_numeric, math_ode_ensemble, math_pde_heat_1d, math_pde_heat_2d, math_pde_wave_1d, math_pde_advect_1d, math_pde_ensemble, math_pde_mol_heat |
| Optimización | math_optimize_critical_points, math_optimize_kkt, math_lp_solve, math_optimize_minimize, math_optimize_multistart |
| Unidades | math_unit_check, math_unit_convert, math_unit_simplify |
| Aseguramiento | math_store_status, math_replay, math_fuzz_differential, math_certified_enclose |
| Demostración | math_prove, math_prove_batch, math_prove_replay |
| Procedencia | math_derivation_get, math_derivation_trace |
Cada docstring de herramienta está escrito orientado a LLM: formatos de parámetros, semántica exacta-vs-numérica, límites y sugerencias de seguimiento están documentados en el lugar.
Configuración
Todos los ajustes están impulsados por el entorno con el prefijo MATHKERNEL_
(Settings.from_env()), inspeccionables a través de math_capabilities:
| Variable | Default | Propósito |
|---|---|---|
MATHKERNEL_MAX_INPUT_LENGTH | 100000 | Límite de entrada del analizador |
MATHKERNEL_MAX_OUTPUT_SIZE_BYTES | 256000000 | Presupuesto de bytes para la respuesta completa; los payloads sobredimensionados se conservan como recursos verificados por integridad y se devuelven mediante recibo |
MATHKERNEL_SOLVER_TIMEOUT_SECONDS | 30 | Presupuesto de operaciones simbólicas mediante trabajadores de subproceso cancelables y acotados |
MATHKERNEL_ENABLE_EXECUTION | false | Ejecución de generación de código en sandbox (opt-in) |
MATHKERNEL_YOLO_MODE | false | Desbloquea math_yolo_settings para mutar la configuración activa de MATHKERNEL_* (coerción tipada; desactivado por defecto) |
MATHKERNEL_Z3_TIMEOUT_MS | 10000 | Presupuesto SMT (se establece en cada instancia del solver Z3) |
MATHKERNEL_LEAN_BINARY / MATHKERNEL_LEAN_TIMEOUT_SECONDS | lean / 90 | Adaptador Lean (tiempo de espera pasado a cada verificación de lake env lean) |
MATHKERNEL_SKIP_LEAN_INSTALL | sin definir | Omitir la descarga predeterminada de Lean 4 + Mathlib |
MATHKERNEL_LEAN_CACHE | caché de plataforma | Raíz del espacio de trabajo de elan + lake |
MATHKERNEL_ENABLE_PARALLEL / MATHKERNEL_MAX_WORKERS | true / cpu_count | Grupos de procesos y subprocesos |
MATHKERNEL_MAX_ITERATIONS | 10000 | Límite de iteraciones para simplex / Nelder-Mead |
MATHKERNEL_TOLERANCE | 1e-12 | Tolerancia numérica de convergencia |
MATHKERNEL_MAX_ODE_STEPS | 100000 | Límite de pasos de integración RK45 |
MATHKERNEL_STORE_PATH | sin definir | Persistencia SQLite opt-in para expresiones/derivaciones + math_replay |
MATHKERNEL_PROVE_PORTFOLIO_SIZE | 3 | Codificaciones SMT en competencia por llamada a math_prove |
MATHKERNEL_MAX_PDE_GRID | 1000000 | Límite de celdas de la malla del solver PDE |
MATHKERNEL_MAX_PDE_FIELDS / MATHKERNEL_MAX_PDE_DIMENSIONS | 16 / 8 | Límites tipados de campos PDE y variables independientes |
MATHKERNEL_MAX_PDE_EQUATIONS / MATHKERNEL_MAX_PDE_TERMS | 32 / 1024 | Límites tipados del sistema PDE y del total de términos |
MATHKERNEL_MAX_PDE_CONDITIONS | 1024 | Límite tipado total de condiciones de contorno/iniciales |
MATHKERNEL_MAX_PDE_DERIVATIVE_ORDER / MATHKERNEL_MAX_PDE_NONLINEAR_POWER | 4 / 8 | Límites de derivadas y potencias representadas |
MATHKERNEL_MAX_PDE_WORK | 2000000 | Límite de trabajo tipado de construcción/reproducción PDE |
MATHKERNEL_MAX_PDE_SPACES / MATHKERNEL_MAX_PDE_SPACE_ORDER | 64 / 8 | Límites tipados de conteo de espacios de forma débil y orden de regularidad |
MATHKERNEL_MAX_PDE_WEAK_TERMS / MATHKERNEL_MAX_PDE_IBP_STEPS | 4096 / 256 | Límites tipados de términos integrales derivados e integración por partes |
MATHKERNEL_MAX_PDE_WEAK_WORK | 5000000 | Límite de trabajo de derivación/reproducción de forma débil |
MATHKERNEL_MAX_FEM_POINTS / MATHKERNEL_MAX_FEM_CELLS | 100000 / 200000 | Límites de vértices/celdas de malla simplex |
MATHKERNEL_MAX_FEM_DOFS | 200000 | Límite de grados de libertad del espacio de elementos finitos |
MATHKERNEL_MAX_FEM_WORK | 20000000 | Límite de trabajo de construcción/reproducción de elementos finitos |
MATHKERNEL_MAX_FEM_ASSEMBLY_NNZ / MATHKERNEL_MAX_FEM_ASSEMBLY_WORK | 2000000 / 50000000 | Límites de entradas dispersas y trabajo de ensamblaje |
MATHKERNEL_MAX_FEM_EXACT_SOLVE_DOFS / MATHKERNEL_MAX_FEM_NUMERIC_SOLVE_DOFS | 256 / 100000 | Límites de diagnóstico denso exacto y resolución dispersa numérica |
MATHKERNEL_MAX_FEM_ESTIMATOR_WORK / MATHKERNEL_MAX_FEM_REFINED_CELLS | 50000000 / 500000 | Límites de trabajo de reproducción del indicador residual y celdas de salida refinadas |
MATHKERNEL_MAX_QE_VARIABLES | 16 | Límite de variables para eliminación de cuantificadores |
MATHKERNEL_MAX_BATCH_JOBS | 10000 | Límite de lotes enteros |
MATHKERNEL_MAX_MATRIX_DIM | 128 | Límite del motor matricial |
MATHKERNEL_MAX_JOBS_RETAINED | 100 | Retención de trabajos asíncronos |
MATHKERNEL_MAX_MATH_OBJECTS | 10000 | Límite de objetos tipados retenidos |
MATHKERNEL_MAX_CONTOUR_VERTICES | 4096 | Límite de complejidad de contornos |
MATHKERNEL_MAX_JOINT_DIMENSIONS | 8 | Límite de dimensión de distribución conjunta |
MATHKERNEL_MAX_DISTRIBUTION_COMPONENTS | 256 | Límite de componentes de mezcla |
MATHKERNEL_MAX_SYMBOLIC_SERIES_ORDER | 128 | Límite de orden de Laurent/clasificación |
MATHKERNEL_MAX_ORDER_STATISTIC_SAMPLE_SIZE | 1024 | Límite simbólico de muestra de estadísticos de orden |
MATHKERNEL_MAX_GRAPH_VERTICES / MATHKERNEL_MAX_GRAPH_EDGES | 4096 / 65536 | Límites tipados de tamaño de grafo |
MATHKERNEL_MAX_COMBINATORIAL_ITEMS | 10000 | Límite de generación combinatoria perezosa |
MATHKERNEL_MAX_GROUP_ELEMENTS | 4096 | Límite de enumeración de grupos finitos |
MATHKERNEL_MAX_FIELD_DEGREE | 64 | Límite de grado de extensión GF(p^m) |
MATHKERNEL_MAX_NORMAL_FORM_DIM | 128 | Límite de dimensión matricial Smith/Hermite |
MATHKERNEL_MAX_INVERSE_BRANCHES | 256 | Límite de ramas/Jacobianos de cambio de variable |
MATHKERNEL_MAX_OBLIGATION_STEPS | 128 | Obligaciones máximas del plan ejecutable |
MATHKERNEL_MAX_FWHT_SIZE | 2²⁰ | Límite de longitud FWHT |
MATHKERNEL_MAX_FINITE_STATES | 4096 | Límite de enumeración de sistemas finitos |
MATHKERNEL_MAX_CUMULANT_ORDER | 8 | Límite de orden de cumulantes/tensores conectados |
MATHKERNEL_MAX_CLOSURE_RESULTS | 10000 | Límite de resultados de búsqueda de cierre |
MATHKERNEL_MAX_GEOMETRY_DIMENSION | 8 | Límite de dimensión de variedad/carta |
MATHKERNEL_MAX_GEOMETRY_RANK | 6 | Límite de rango de campo tensorial denso |
MATHKERNEL_MAX_GEOMETRY_POINTS | 10000 | Límite de conteo de puntos/vértices |
MATHKERNEL_MAX_GEOMETRY_SIMPLICES | 100000 | Límite de conteo de semiespacios/triángulos |
MATHKERNEL_MAX_GEOMETRY_WORK | 1000000 | Límite de trabajo simbólico de geometría de preflight |
MATHKERNEL_MAX_TOPOLOGY_DIMENSION | 16 | Grado máximo de complejo finito/dimensión ambiente |
MATHKERNEL_MAX_TOPOLOGY_CELLS | 10000 | Límite total de celdas de base simplicial/cúbica/cadena |
MATHKERNEL_MAX_TOPOLOGY_MATRIX_ENTRIES | 1000000 | Límite de entradas de matriz de frontera almacenada |
MATHKERNEL_MAX_TOPOLOGY_ENTRY_BITS | 4096 | Límite de longitud de bits de entradas de frontera enteras |
MATHKERNEL_MAX_TOPOLOGY_WORK | 2000000 | Límite de trabajo de preflight de topología exacta |
MATHKERNEL_MAX_STATISTICAL_VARIABLES | 256 | Límite tipado de columnas de muestra |
MATHKERNEL_MAX_STATISTICAL_OBSERVATIONS | 100000 | Límite tipado de filas de muestra |
MATHKERNEL_MAX_STATISTICAL_CELLS | 1000000 | Límite tipado de celdas rectangulares de muestra |
MATHKERNEL_MAX_STATISTICAL_WORK | 2000000 | Límite de trabajo de preflight descriptivo/covarianza |
MATHKERNEL_MAX_GLM_PARAMETERS | 64 | Límite de coeficientes ajustados, incluida la intersección |
MATHKERNEL_MAX_GLM_ITERATIONS | 200 | Límite de iteraciones IRLS solicitadas |
MATHKERNEL_MAX_GLM_PREDICTION_ROWS | 100000 | Filas de media condicional por solicitud de predicción |
MATHKERNEL_MAX_GLM_WORK | 20000000 | Límite de trabajo de preflight de rango/matriz/iteración GLM |
MATHKERNEL_MAX_NONPARAMETRIC_GROUPS | 64 | Límite de grupos Kruskal–Wallis seleccionados |
MATHKERNEL_MAX_EXACT_RESAMPLING_STATES | 100000 | Límite de estado completo de signos/etiquetas/permutaciones |
MATHKERNEL_MAX_RESAMPLES | 1000000 | Límite de extracciones de permutación/bootstrap Monte Carlo |
MATHKERNEL_MAX_RESAMPLING_BATCH_CELLS | 1000000 | Celdas generadas por lote de bootstrap |
MATHKERNEL_MAX_RESAMPLING_WORK | 20000000 | Límite de trabajo de preflight de rango/enumeración/remuestreo |
MATHKERNEL_MAX_SURVIVAL_STRATA | 64 | Límite de estratos de supervivencia distintos |
MATHKERNEL_MAX_SURVIVAL_TIMELINE_POINTS | 100000 | Límite de línea de tiempo Kaplan–Meier seleccionada |
MATHKERNEL_MAX_COX_PARAMETERS | 64 | Límite de predictores Cox |
MATHKERNEL_MAX_COX_ITERATIONS | 200 | Límite de iteraciones Newton Cox solicitadas |
MATHKERNEL_MAX_COX_PREDICTION_ROWS | 100000 | Límite de filas de predicción de riesgo parcial |
MATHKERNEL_MAX_COX_INFORMATION_CONDITION | 1000000000000 | Techo de condición de información observada |
MATHKERNEL_MAX_SURVIVAL_WORK | 20000000 | Límite de trabajo de conjunto de riesgo/matriz/iteración de supervivencia |
MATHKERNEL_MAX_TIME_SERIES_LAG | 1000 | Límite de rezago ACF/PACF/diagnóstico |
MATHKERNEL_MAX_TIME_SERIES_DIFFERENCE | 2 | Límite de orden de diferenciación ARIMA |
MATHKERNEL_MAX_TIME_SERIES_PARAMETERS | 32 | Límite de parámetros dinámicos AR/MA/GARCH |
MATHKERNEL_MAX_TIME_SERIES_ITERATIONS | 500 | Límite de iteraciones del optimizador de ajuste |
MATHKERNEL_MAX_TIME_SERIES_FORECAST_STEPS | 10000 | Límite de horizonte de pronóstico |
MATHKERNEL_MAX_TIME_SERIES_WORK | 50000000 | Límite de trabajo de análisis/ajuste/pronóstico |
MATHKERNEL_MAX_STOCHASTIC_STATES | 256 | Límite de estados CTMC |
MATHKERNEL_MAX_STOCHASTIC_TIME_POINTS | 10000 | Límite de tiempo de predicción/dimensión finita |
MATHKERNEL_MAX_GP_CONDITIONING_POINTS | 2000 | Límite de observaciones GP |
MATHKERNEL_MAX_STOCHASTIC_MATRIX_ENTRIES | 1000000 | Límite de espacio de trabajo de covarianza/generador |
MATHKERNEL_MAX_GP_CONDITION_NUMBER | 1000000000000 | Techo de condicionamiento GP |
MATHKERNEL_MAX_STOCHASTIC_WORK | 50000000 | Límite de trabajo de factorización/exponencial |
MATHKERNEL_MAX_SDE_STATE_DIMENSION | 32 | Límite de dimensión de estado SDE |
MATHKERNEL_MAX_SDE_NOISE_DIMENSION | 32 | Límite de dimensión del driver browniano |
MATHKERNEL_MAX_SDE_STEPS | 1000000 | Límite de pasos de simulación/convergencia |
MATHKERNEL_MAX_SDE_PATHS | 100000 | Límite de trayectorias de simulación |
MATHKERNEL_MAX_SDE_SIMULATION_CELLS | 5000000 | Límite de celdas de trayectoria almacenada/incremento aleatorio |
MATHKERNEL_MAX_SDE_WORK | 50000000 | Límite de trabajo de actualización SDE |
MATHKERNEL_MAX_SDE_QUERY_VALUES | 20000 | Valores de trayectoria/terminales devueltos por consulta |
Estructura del repositorio
src/mathkernel/ core library, typed mathematics and kernel facade
src/mathkernel_mcp/ FastMCP server layer and public math_* tools
src/mathkernel_projection/ shared typed multimodal projection layer
src/mathkernel_viz/ visualization IR, viewers and portable renderers
src/mathkernel_sonify/ scientific sonification IR, PCM/WAV and WebAudio
src/mathkernel_artifacts/ shared evidence, lineage and synchronization schema
src/mathkernel_multimodal/ unified visual/audio research-artifact exporter
scripts/ reproducibility, GPU checks and demonstrations
experiments/ research validation programs and datasets
skills/ synchronized Python and MCP agent skills
tests/ core, regression, multimodal and domain test suites
benchmarks/ correctness-gated performance measurements
Paquetes de habilidades
MathKernel incluye dos paquetes de habilidades de agente sincronizados: uno para uso directo de Python y otro para clientes MCP. Documentan el mismo contrato de evidencia, ciclo de vida de objetos y semántica matemática, adaptando los ejemplos a sus respectivas interfaces.
Las habilidades cubren trabajo simbólico/exacto, razonamiento y demostración, persistencia, dinámica finita, probabilidad/estadística, numérica, tensores/unidades, rendimiento, visualización, sonificación científica y el flujo de trabajo compartido de proyección multimodal. Las habilidades de viz/audio ahora requieren procedencia de proyección primero para objetos estructurados y reducción explícita de alta dimensión o extracción acústica en lugar de aplanamiento oculto.
Pruebas
Ejecute la suite completa del árbol fuente con las dependencias opcionales requeridas para los dominios que desee validar:
PYTHONPATH=src:. python -m pytest -q
python scripts/gpu_smoke.py
El repositorio degrada los motores opcionales no disponibles a unknown o unavailable en lugar de fabricar éxito. FastMCP es necesario para las pruebas de registro MCP, z3-solver para pruebas de SMT/demostración/eliminación de cuantificadores, y el runtime ANTLR compatible para el análisis LaTeX de SymPy. Los módulos de prueba específicos de dominio y los ejecutores de experimentos pueden ejecutarse de forma independiente al validar una superficie matemática particular.
La cobertura incluye manejo de analizador y ambigüedad, álgebra simbólica y cálculo, aritmética entera exacta y de campos finitos, algoritmos de grafos, álgebra lineal, rutas diferenciales Numba/CUDA, trabajos asíncronos, generación y verificación de código, métodos GF(2) y Fourier finito, dinámica Koopman/finita, análisis PRNG, matemáticas de ingeniería tipadas, geometría/topología, estadística y sistemas estocásticos, PDE/FEM/adaptividad, propagación de evidencia, integridad de persistencia, visualización, sonificación, artefactos multimodales y la superficie de herramientas MCP.
CI apunta a versiones compatibles de Python con fan-out de subprocesos nativos acotado por trabajador. Las comprobaciones de distribución construyen el sdist y la wheel, verifican metadatos, instalan la wheel en un entorno limpio, confirman la versión del runtime y verifican que los activos multimodales/visualización offline incluidos estén presentes. Las exportaciones portátiles por lo tanto no requieren un CDN después de la instalación.
Límites de seguridad
- Ninguna expresión de usuario cruda llega jamás a
sympify()/parse_expr(); gramática restringida, funciones desconocidas rechazadas, notación ambigua rechazada con candidatos. - Conversión de enteros de longitud arbitraria por fragmentos; guardas de salida de resultados grandes; trabajo automático de teoría de números acotado; techos de pasos de obligación; validación de dependencias/ciclos.
- La ejecución de código en sandbox es opt-in (
MATHKERNEL_ENABLE_EXECUTION=1), se ejecuta en un subproceso aislado con tiempo de espera y siempre se etiqueta como evidencia numérica. - La invocación del subproceso Lean usa
shell=False; los motores opcionales informanunknown/unavailableen lugar de fabricar éxito. - Las búsquedas de candidatos nativas externas LP/QP/MILP, cónicas/QCQP, Riccati/LQG y colocación de polos numérica se ejecutan en intérpretes nuevos cuyos grupos de procesos se eliminan al agotar el tiempo de espera. Las solicitudes/resultados están acotados y el fan-out BLAS/OpenMP está limitado.
- La persistencia SQLite verifica cada payload JSON con SHA-256 antes de decodificar. Los registros tipados canónicos además reconcilian su tipo de objeto declarado, clase de modelo decodificada y campo de enlace fuente antes de la recuperación o ejecución. Los registros corruptos o sustituidos fallan de forma cerrada sin producir objetos derivados.
Este límite de terminación no es un sandbox de código hostil y no impone una cuota de memoria del SO. El aislamiento multiinquilino aún pertenece a una capa externa de trabajador o sandbox.
Licencia
Copyright © 2026 Maarten Boone.
Publicado bajo la Licencia MIT.