[
  {
    "id": "cell",
    "file_name": "cell_basic.svp",
    "title_es": "Celda básica",
    "title_en": "Basic cell",
    "description_key": "descriptionCell",
    "source_en": "-- cell_basic.svp — Célula simple b=3, n=9\n-- Test de conformidad: declaración mínima + evaluación\n\ncodomain K3 = { APTO, NO_APTO, INDETERMINADO };\n\noutput_semantics Klin {\n  APTO -> \"Clasificación fuerte favorable\";\n  NO_APTO -> \"Clasificación fuerte desfavorable\";\n  INDETERMINADO -> \"Sin clasificación fuerte\";\n}\n\ncellspec C1 {\n  b: 3;\n  codomain: K3;\n  semantics: Klin;\n  role: Base;\n}\n\ncellstate S1 {\n  spec: C1;\n  vector: [Zero, One, U, Zero, Zero, One, U, Zero, One];\n}\n\nlet E1 = evaluate(S1);\n",
    "source_es": "-- cell_basic.svp — Célula simple b=3, n=9\n-- Test de conformidad: declaración mínima + evaluación\n\ncodominio K3 = { APTO, NO_APTO, INDETERMINADO };\n\nsemántica_de_salida Klin {\n  APTO -> \"Clasificación fuerte favorable\";\n  NO_APTO -> \"Clasificación fuerte desfavorable\";\n  INDETERMINADO -> \"Sin clasificación fuerte\";\n}\n\nespecificación_de_celda C1 {\n  b: 3;\n  codominio: K3;\n  semántica: Klin;\n  rol: Base;\n}\n\nestado_de_celda S1 {\n  especificación: C1;\n  vector: [Cero, Uno, U, Cero, Cero, Uno, U, Cero, Uno];\n}\n\nsea E1 = evaluar(S1);\n"
  },
  {
    "id": "gate",
    "file_name": "gate_table.svp",
    "title_es": "Compuerta y admisibilidad",
    "title_en": "Gate and admissibility",
    "description_key": "descriptionGate",
    "source_en": "-- gate_table.svp — Compuerta con tabla explícita de admisibilidad\n\ncodomain K3 = { APTO, NO_APTO, INDETERMINADO };\n\noutput_semantics Klin {\n  APTO -> \"ok\";\n  NO_APTO -> \"no\";\n  INDETERMINADO -> \"u\";\n}\n\ncellspec C1 {\n  b: 3;\n  codomain: K3;\n  semantics: Klin;\n  role: Base;\n}\n\ncellspec C2 {\n  b: 3;\n  codomain: K3;\n  semantics: Klin;\n  role: Base;\n}\n\ncellstate S1 {\n  spec: C1;\n  vector: [Zero, One, U, Zero, Zero, One, U, Zero, One];\n}\n\ncellstate S2 {\n  spec: C2;\n  vector: [Zero, Zero, Zero, One, Zero, Zero, Zero, One, Zero];\n}\n\nadmissibility_table T1 {\n  input_codomains: [K3, K3];\n  output_codomain: K3;\n  table: {\n    (APTO, APTO) -> APTO;\n    (APTO, NO_APTO) -> NO_APTO;\n    (APTO, INDETERMINADO) -> INDETERMINADO;\n    (NO_APTO, APTO) -> NO_APTO;\n    (NO_APTO, NO_APTO) -> NO_APTO;\n    (NO_APTO, INDETERMINADO) -> NO_APTO;\n    (INDETERMINADO, APTO) -> INDETERMINADO;\n    (INDETERMINADO, NO_APTO) -> NO_APTO;\n    (INDETERMINADO, INDETERMINADO) -> INDETERMINADO;\n  }\n}\n\nlet E1 = evaluate(S1);\nlet E2 = evaluate(S2);\nlet G1 = gate([E1, E2], using: T1);\n",
    "source_es": "-- gate_table.svp — Compuerta con tabla explícita de admisibilidad\n\ncodominio K3 = { APTO, NO_APTO, INDETERMINADO };\n\nsemántica_de_salida Klin {\n  APTO -> \"ok\";\n  NO_APTO -> \"no\";\n  INDETERMINADO -> \"u\";\n}\n\nespecificación_de_celda C1 {\n  b: 3;\n  codominio: K3;\n  semántica: Klin;\n  rol: Base;\n}\n\nespecificación_de_celda C2 {\n  b: 3;\n  codominio: K3;\n  semántica: Klin;\n  rol: Base;\n}\n\nestado_de_celda S1 {\n  especificación: C1;\n  vector: [Cero, Uno, U, Cero, Cero, Uno, U, Cero, Uno];\n}\n\nestado_de_celda S2 {\n  especificación: C2;\n  vector: [Cero, Cero, Cero, Uno, Cero, Cero, Cero, Uno, Cero];\n}\n\ntabla_de_admisibilidad T1 {\n  codominios_de_entrada: [K3, K3];\n  codominio_de_salida: K3;\n  tabla: {\n    (APTO, APTO) -> APTO;\n    (APTO, NO_APTO) -> NO_APTO;\n    (APTO, INDETERMINADO) -> INDETERMINADO;\n    (NO_APTO, APTO) -> NO_APTO;\n    (NO_APTO, NO_APTO) -> NO_APTO;\n    (NO_APTO, INDETERMINADO) -> NO_APTO;\n    (INDETERMINADO, APTO) -> INDETERMINADO;\n    (INDETERMINADO, NO_APTO) -> NO_APTO;\n    (INDETERMINADO, INDETERMINADO) -> INDETERMINADO;\n  }\n}\n\nsea E1 = evaluar(S1);\nsea E2 = evaluar(S2);\nsea G1 = compuerta([E1, E2], usando: T1);\n"
  },
  {
    "id": "resolve",
    "file_name": "resolve_projection.svp",
    "title_es": "Resolución",
    "title_en": "Resolution",
    "description_key": "descriptionResolve",
    "source_en": "-- resolve_projection.svp — resolve sobre una U constituida + proyección explícita\n\ncodomain K3 = { APTO, NO_APTO, INDETERMINADO };\n\noutput_semantics Klin {\n  APTO -> \"ok\";\n  NO_APTO -> \"no\";\n  INDETERMINADO -> \"u\";\n}\n\ncellspec C1 {\n  b: 3;\n  codomain: K3;\n  semantics: Klin;\n  role: Base;\n}\n\ncellstate S1 {\n  spec: C1;\n  vector: [Zero, One, U, Zero, Zero, One, U, Zero, One];\n}\n\nres_spec RS1 {\n  context: ContextoClinico;\n  mechanism: RevisionExperto;\n  mapping: MapeoResolucion;\n}\n\nlet RR1 = resolve((S1, 3), with: RS1, context: ContextoClinico, mechanism: RevisionExperto);\nlet valor_resuelto = RR1.resolved_to;\n",
    "source_es": "-- resolve_projection.svp — resolve sobre una U constituida + proyección explícita\n\ncodominio K3 = { APTO, NO_APTO, INDETERMINADO };\n\nsemántica_de_salida Klin {\n  APTO -> \"ok\";\n  NO_APTO -> \"no\";\n  INDETERMINADO -> \"u\";\n}\n\nespecificación_de_celda C1 {\n  b: 3;\n  codominio: K3;\n  semántica: Klin;\n  rol: Base;\n}\n\nestado_de_celda S1 {\n  especificación: C1;\n  vector: [Cero, Uno, U, Cero, Cero, Uno, U, Cero, Uno];\n}\n\nespecificación_de_resolución RS1 {\n  contexto: ContextoClinico;\n  mecanismo: RevisionExperto;\n  correspondencia: MapeoResolucion;\n}\n\nsea RR1 = resolver((S1, 3), con: RS1, contexto: ContextoClinico, mecanismo: RevisionExperto);\nsea valor_resuelto = RR1.valor_resuelto;\n"
  },
  {
    "id": "compose",
    "file_name": "compose_basic.svp",
    "title_es": "Composición",
    "title_en": "Composition",
    "description_key": "descriptionCompose",
    "source_en": "-- compose_basic.svp — Composición con relación y patrón declarados\n\ncodomain K3 = { APTO, NO_APTO, INDETERMINADO };\noutput_semantics Klin { APTO -> \"ok\"; NO_APTO -> \"no\"; INDETERMINADO -> \"u\"; }\n\ncellspec C1 { b: 3; codomain: K3; semantics: Klin; role: Base; }\ncellspec C2 { b: 3; codomain: K3; semantics: Klin; role: Base; }\n\ncoupledspec CC1 { cell: C1; bridges: [3]; }\ncoupledspec CC2 { cell: C2; bridges: [3]; }\n\nconnector Phi1 {\n  source_codomain: K3;\n  target_position: 3;\n  mapping: { APTO -> Zero; NO_APTO -> One; INDETERMINADO -> U; }\n}\n\nsemantic_relation R_serie {\n  kind: DeclaredRelation;\n  constraints: [ProfilaxisRiesgo];\n}\n\npattern P_serie {\n  kind: DeclaredPattern;\n  arity: 2;\n}\n\ngraph G1 {\n  nodes: [CC1, CC2];\n  edges: [edge(source: CC1, target: CC2, position: 3, connector: Phi1)];\n  relation: R_serie;\n  regime: Simple;\n}\n\nlet A1 = compose(G1, relations: [R_serie], patterns: [P_serie]);\n",
    "source_es": "-- compose_basic.svp — Composición con relación y patrón declarados\n\ncodominio K3 = { APTO, NO_APTO, INDETERMINADO };\nsemántica_de_salida Klin { APTO -> \"ok\"; NO_APTO -> \"no\"; INDETERMINADO -> \"u\"; }\n\nespecificación_de_celda C1 { b: 3; codominio: K3; semántica: Klin; rol: Base; }\nespecificación_de_celda C2 { b: 3; codominio: K3; semántica: Klin; rol: Base; }\n\nespecificación_acoplada CC1 { celda: C1; puentes: [3]; }\nespecificación_acoplada CC2 { celda: C2; puentes: [3]; }\n\nconector Phi1 {\n  codominio_de_origen: K3;\n  posición_objetivo: 3;\n  correspondencia: { APTO -> Cero; NO_APTO -> Uno; INDETERMINADO -> U; }\n}\n\nrelación_semántica R_serie {\n  clase: RelaciónDeclarada;\n  restricciones: [ProfilaxisRiesgo];\n}\n\npatrón P_serie {\n  clase: PatrónDeclarado;\n  aridad: 2;\n}\n\ngrafo G1 {\n  nodos: [CC1, CC2];\n  aristas: [arista(origen: CC1, objetivo: CC2, posición: 3, conector: Phi1)];\n  relación: R_serie;\n  régimen: Simple;\n}\n\nsea A1 = componer(G1, relaciones: [R_serie], patrones: [P_serie]);\n"
  },
  {
    "id": "query",
    "file_name": "query_context_all_variants.svp",
    "title_es": "Consultas y contextos",
    "title_en": "Queries and contexts",
    "description_key": "descriptionQuery",
    "source_en": "-- query_context_all_variants.svp — cobertura de las cinco variantes de QueryContext\n\ncodomain K3 = { APTO, NO_APTO, INDETERMINADO };\noutput_semantics Klin { APTO -> \"ok\"; NO_APTO -> \"no\"; INDETERMINADO -> \"u\"; }\n\ncellspec C1 {\n  b: 3;\n  codomain: K3;\n  semantics: Klin;\n  role: Base;\n}\n\ncapture_spec Cap1 {\n  parameter_id: 1;\n  observation_domain: DominioObs1;\n  observation_space: ObsEsp1;\n  failure_symbol: Bottom;\n  mapping: MapCaptura1;\n}\n\nadmissibility_spec Adm1 {\n  parameter_id: 1;\n  states: {Ok, Degraded, NotAdmitted};\n  rule: ReglaAdm1;\n}\n\nternarizer Ter1 {\n  observation_space: ObsEsp1;\n  partition_zero: Zona0;\n  partition_one: Zona1;\n  partition_u: ZonaU;\n  mapping: MapTer1;\n}\n\ncellstate S1 {\n  spec: C1;\n  vector: [Zero, One, U, Zero, Zero, One, U, Zero, One];\n}\n\ncoupledspec CC1 { cell: C1; bridges: [3]; }\n\ncoupledstate CS1 {\n  spec: CC1;\n  base_vector: [Zero, One, U, Zero, Zero, One, U, Zero, One];\n  updated_vector: [Zero, One, U, Zero, Zero, One, U, Zero, One];\n}\n\nsemantic_relation RArch {\n  kind: DeclaredRelation;\n  constraints: [CoherenciaLocal];\n}\n\ngraph Arch1 {\n  nodes: [CC1];\n  edges: [];\n  relation: RArch;\n  regime: Simple;\n}\n\nadmissibility_table T1 {\n  input_codomains: [K3, K3];\n  output_codomain: K3;\n  table: {\n    (APTO, APTO) -> APTO;\n    (APTO, NO_APTO) -> NO_APTO;\n    (APTO, INDETERMINADO) -> INDETERMINADO;\n    (NO_APTO, APTO) -> NO_APTO;\n    (NO_APTO, NO_APTO) -> NO_APTO;\n    (NO_APTO, INDETERMINADO) -> NO_APTO;\n    (INDETERMINADO, APTO) -> INDETERMINADO;\n    (INDETERMINADO, NO_APTO) -> NO_APTO;\n    (INDETERMINADO, INDETERMINADO) -> INDETERMINADO;\n  }\n}\n\nlet E1 = evaluate(CS1);\nlet G1 = gate([E1, E1], using: T1);\n\nhorizon H1 {\n  architecture: Arch1;\n  events: [CambioProfilaxis];\n}\n\ntransition_data TD1 {\n  horizon_ref: H1;\n  events: [(CambioProfilaxis, One)];\n  induced_parameters: [(C1, 3, One)];\n}\n\nframe F1 {\n  index: 1;\n  architecture: Arch1;\n  cell_states: [CS1];\n  eval_results: [E1];\n  gate_results: [G1];\n  supervision: [];\n  criticalities: [];\n}\n\nframe F2 {\n  index: 2;\n  architecture: Arch1;\n  cell_states: [CS1];\n  eval_results: [E1];\n  gate_results: [G1];\n  supervision: [];\n  criticalities: [];\n}\n\ntrajectory TR1 {\n  entries: [entry(frame: F1, transition: TD1), entry(frame: F2)];\n}\n\ndomain D1 {\n  parameters: [P1];\n  interface: I1;\n  horizon: H1;\n  capture_specs: [Cap1];\n  admissibility_specs: [Adm1];\n  ternarizers: [Ter1];\n  exogeneity_mask: Exo1;\n  silent_u: SU1;\n  transduction_policy: TP1;\n  u_policy: UP1;\n  closure_criterion: CCrit1;\n}\n\nagent AG1 {\n  architecture: Arch1;\n  domain: D1;\n  query_engine: QE1;\n}\n\nquery_spec QSPoint {\n  query_type: PointEvaluation;\n  scope: Cell;\n  restrictions: [R1];\n}\n\nquery_spec QSTraj {\n  query_type: TrajectoryState;\n  scope: Trajectory;\n  restrictions: [R1];\n}\n\nquery_spec QSFrameCmp {\n  query_type: FrameComparison;\n  scope: Pair;\n  restrictions: [R1];\n}\n\nquery_spec QSArch {\n  query_type: GlobalCriticality;\n  scope: Architecture;\n  restrictions: [R1];\n}\n\nquery_spec QSCov {\n  query_type: CoverageState;\n  scope: Architecture;\n  restrictions: [R1];\n}\n\nlet Q1 = query(QSPoint, by: AG1, in: PointEval(F1));\nlet Q2 = query(QSTraj, by: AG1, in: TrajectoryView(TR1));\nlet Q3 = query(QSFrameCmp, by: AG1, in: FrameComparison(F1, F2));\nlet Q4 = query(QSArch, by: AG1, in: ArchitectureView(Arch1, [C1], [E1], [G1]));\nlet Q5 = query(QSCov, by: AG1, in: CoverageReport(D1, I1, SU1));\n",
    "source_es": "-- query_context_all_variants.svp — cobertura de las cinco variantes de QueryContext\n\ncodominio K3 = { APTO, NO_APTO, INDETERMINADO };\nsemántica_de_salida Klin { APTO -> \"ok\"; NO_APTO -> \"no\"; INDETERMINADO -> \"u\"; }\n\nespecificación_de_celda C1 {\n  b: 3;\n  codominio: K3;\n  semántica: Klin;\n  rol: Base;\n}\n\nespecificación_de_captura Cap1 {\n  identificador_de_parámetro: 1;\n  dominio_de_observación: DominioObs1;\n  espacio_de_observación: ObsEsp1;\n  símbolo_de_fallo: FalloCaptura;\n  correspondencia: MapCaptura1;\n}\n\nespecificación_de_admisibilidad Adm1 {\n  identificador_de_parámetro: 1;\n  estados: {Admitido, Degradado, NoAdmitido};\n  regla: ReglaAdm1;\n}\n\nternarizador Ter1 {\n  espacio_de_observación: ObsEsp1;\n  partición_cero: Zona0;\n  partición_uno: Zona1;\n  partición_u: ZonaU;\n  correspondencia: MapTer1;\n}\n\nestado_de_celda S1 {\n  especificación: C1;\n  vector: [Cero, Uno, U, Cero, Cero, Uno, U, Cero, Uno];\n}\n\nespecificación_acoplada CC1 { celda: C1; puentes: [3]; }\n\nestado_acoplado CS1 {\n  especificación: CC1;\n  vector_base: [Cero, Uno, U, Cero, Cero, Uno, U, Cero, Uno];\n  vector_actualizado: [Cero, Uno, U, Cero, Cero, Uno, U, Cero, Uno];\n}\n\nrelación_semántica RArch {\n  clase: RelaciónDeclarada;\n  restricciones: [CoherenciaLocal];\n}\n\ngrafo Arch1 {\n  nodos: [CC1];\n  aristas: [];\n  relación: RArch;\n  régimen: Simple;\n}\n\ntabla_de_admisibilidad T1 {\n  codominios_de_entrada: [K3, K3];\n  codominio_de_salida: K3;\n  tabla: {\n    (APTO, APTO) -> APTO;\n    (APTO, NO_APTO) -> NO_APTO;\n    (APTO, INDETERMINADO) -> INDETERMINADO;\n    (NO_APTO, APTO) -> NO_APTO;\n    (NO_APTO, NO_APTO) -> NO_APTO;\n    (NO_APTO, INDETERMINADO) -> NO_APTO;\n    (INDETERMINADO, APTO) -> INDETERMINADO;\n    (INDETERMINADO, NO_APTO) -> NO_APTO;\n    (INDETERMINADO, INDETERMINADO) -> INDETERMINADO;\n  }\n}\n\nsea E1 = evaluar(CS1);\nsea G1 = compuerta([E1, E1], usando: T1);\n\nhorizonte H1 {\n  arquitectura: Arch1;\n  sucesos: [CambioProfilaxis];\n}\n\ndatos_de_transición TD1 {\n  referencia_de_horizonte: H1;\n  sucesos: [(CambioProfilaxis, Uno)];\n  parámetros_inducidos: [(C1, 3, Uno)];\n}\n\nmarco F1 {\n  índice: 1;\n  arquitectura: Arch1;\n  estados_de_celda: [CS1];\n  resultados_de_evaluación: [E1];\n  resultados_de_compuerta: [G1];\n  supervisión: [];\n  criticidades: [];\n}\n\nmarco F2 {\n  índice: 2;\n  arquitectura: Arch1;\n  estados_de_celda: [CS1];\n  resultados_de_evaluación: [E1];\n  resultados_de_compuerta: [G1];\n  supervisión: [];\n  criticidades: [];\n}\n\ntrayectoria TR1 {\n  entradas_de_trayectoria: [entrada(marco: F1, transición: TD1), entrada(marco: F2)];\n}\n\ndominio D1 {\n  parámetros: [P1];\n  interfaz: I1;\n  horizonte: H1;\n  especificaciones_de_captura: [Cap1];\n  especificaciones_de_admisibilidad: [Adm1];\n  ternarizadores: [Ter1];\n  máscara_de_exogeneidad: Exo1;\n  u_silenciosa: SU1;\n  política_de_transducción: TP1;\n  política_de_u: UP1;\n  criterio_de_clausura: CCrit1;\n}\n\nagente AG1 {\n  arquitectura: Arch1;\n  dominio: D1;\n  motor_de_consulta: QE1;\n}\n\nespecificación_de_consulta QSPoint {\n  tipo_de_consulta: EvaluaciónPuntual;\n  alcance: Celda;\n  limitaciones: [R1];\n}\n\nespecificación_de_consulta QSTraj {\n  tipo_de_consulta: EstadoTrayectoria;\n  alcance: Trayectoria;\n  limitaciones: [R1];\n}\n\nespecificación_de_consulta QSFrameCmp {\n  tipo_de_consulta: ComparaciónMarcos;\n  alcance: Par;\n  limitaciones: [R1];\n}\n\nespecificación_de_consulta QSArch {\n  tipo_de_consulta: CriticidadGlobal;\n  alcance: Arquitectura;\n  limitaciones: [R1];\n}\n\nespecificación_de_consulta QSCov {\n  tipo_de_consulta: EstadoCobertura;\n  alcance: Arquitectura;\n  limitaciones: [R1];\n}\n\nsea Q1 = consultar(QSPoint, por: AG1, en: VistaEvaluaciónPuntual(F1));\nsea Q2 = consultar(QSTraj, por: AG1, en: VistaTrayectoria(TR1));\nsea Q3 = consultar(QSFrameCmp, por: AG1, en: ComparaciónMarcos(F1, F2));\nsea Q4 = consultar(QSArch, por: AG1, en: VistaArquitectura(Arch1, [C1], [E1], [G1]));\nsea Q5 = consultar(QSCov, por: AG1, en: InformeCobertura(D1, I1, SU1));\n"
  },
  {
    "id": "trajectory",
    "file_name": "transition_data_events.svp",
    "title_es": "Sucesos y trayectoria",
    "title_en": "Events and trajectory",
    "description_key": "descriptionTrajectory",
    "source_en": "-- transition_data_events.svp — TransitionData con sucesos e induced_parameters\n\ncodomain K3 = { APTO, NO_APTO, INDETERMINADO };\noutput_semantics Klin { APTO -> \"ok\"; NO_APTO -> \"no\"; INDETERMINADO -> \"u\"; }\n\ncellspec C1 { b: 3; codomain: K3; semantics: Klin; role: Base; }\n\nhorizon H1 {\n  architecture: Arch1;\n  events: [CambioProfilaxis, NuevoCultivo];\n}\n\ntransition_data TD1 {\n  horizon_ref: H1;\n  events: [(CambioProfilaxis, One), (NuevoCultivo, Zero)];\n  induced_parameters: [(C1, 3, One), (C1, 7, Zero)];\n}\n",
    "source_es": "-- transition_data_events.svp — TransitionData con sucesos e induced_parameters\n\ncodominio K3 = { APTO, NO_APTO, INDETERMINADO };\nsemántica_de_salida Klin { APTO -> \"ok\"; NO_APTO -> \"no\"; INDETERMINADO -> \"u\"; }\n\nespecificación_de_celda C1 { b: 3; codominio: K3; semántica: Klin; rol: Base; }\n\nhorizonte H1 {\n  arquitectura: Arch1;\n  sucesos: [CambioProfilaxis, NuevoCultivo];\n}\n\ndatos_de_transición TD1 {\n  referencia_de_horizonte: H1;\n  sucesos: [(CambioProfilaxis, Uno), (NuevoCultivo, Cero)];\n  parámetros_inducidos: [(C1, 3, Uno), (C1, 7, Cero)];\n}\n"
  }
]
