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);
}