Referencia
Documentación técnica
Definición matemática del funtor, invariantes categóricos, predicados, arquitectura, API y ejemplos de uso.
1. Definición matemática del funtor
Sea Acc la categoría cuyos objetos son los estados del sistema y cuyos morfismos son las acciones del agente, y sea Pred la categoría de predicados verificables con la conjunción como composición. FuntorCert es el funtor:
F : Acc ⟶ Pred F(s) = ... F(a : s → t) = ... F(id_s) = ⊤ F(g ∘ f) = F(g) ∧ F(f)
La preservación de la composición es la propiedad operativa central: certificar una secuencia de acciones equivale a certificar cada acción y conjuntar sus predicados.
2. Invariantes
Los invariantes categóricos son las condiciones que el funtor debe preservar para que la certificación sea válida.
- I_ámbito
- La acción pertenece al ámbito declarado del agente.
- I_seguridad
- La acción no vulnera los límites operativos del sistema.
- I_legalidad
- La acción satisface los requisitos regulatorios aplicables.
- I_trazabilidad
- La acción produce evidencia con hash y sello temporal.
- I_supervisión
- Toda acción sensible exige validación humana previa.
3. Predicados
El predicado emitido para una acción es la conjunción de los invariantes aplicables.
F(a) = I_ámbito(a) ∧ I_seguridad(a) ∧ I_legalidad(a)
∧ I_trazabilidad(a) ∧ I_supervisión(a)
certificada(a) ⟺ ⊨ F(a)4. Arquitectura
- Receptor de acciones. Recoge la acción propuesta y su contexto.
- Núcleo functorial. Aplica F y genera el predicado.
- Motor de verificación. Comprueba el predicado con Z3, Dafny e invariantes categóricos.
- Registro de evidencia. Emite hash, sello temporal y evidencia verificable.
- Puerta de supervisión. Retiene las acciones sensibles hasta la validación humana.
- Auditoría continua. Consolida los certificados en un registro auditable.
5. API
Interfaz de certificación de una acción y consulta de su evidencia.
POST /v1/certify
{
"agente": "agent-17",
"accion": "transferir_datos",
"contexto": { "ambito": "eu", "datos_personales": true },
"estado_origen": "s_142"
}
200 OK
{
"veredicto": "pendiente_supervision",
"predicado": "I_ambito ∧ I_legalidad ∧ I_trazabilidad",
"evidencia": { "hash": "…", "sello_temporal": "…" }
}
GET /v1/evidence/{hash}6. Ejemplos de uso
const cert = await funtorcert.certify({
agente: "agent-17",
accion: "ejecutar_orden",
contexto: { ambito: "planta-3", reversible: true },
});
if (cert.veredicto === "verificado") {
await agente.ejecutar();
} else {
await agente.detener(cert.predicado);
}