{
  "id": "KL-FCS-037",
  "version": "1.0.0",
  "domain": "Abstract interpretation",
  "kind": "abstract",
  "title": "A positive affine transfer",
  "problem": "Compute sound interval bounds for a sequence of mathematical-integer affine transforms.",
  "specification": {
    "initial_interval": [
      -2,
      3
    ],
    "transforms": [
      [
        2,
        1
      ]
    ]
  },
  "claim": {
    "sound": true,
    "tight_interval": true
  },
  "witness": {
    "intervals": [
      [
        -2,
        3
      ],
      [
        -3,
        7
      ]
    ]
  },
  "verification_scope": "Complete concrete inputs + interval transfer replay",
  "explanation": "Endpoint propagation encloses every concrete output. Negative multiplication swaps extrema; multiple transformations compose while preserving containment.",
  "limitations": "The abstraction encloses gaps. Machine overflow, branches, and widening are not modeled.",
  "verification_status": "mechanically-checked",
  "review_status": "awaiting-independent-review",
  "provenance": {
    "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
    "external_dataset": null,
    "model_run": null
  },
  "references": [
    "https://www.di.ens.fr/~cousot/AI/"
  ],
  "license_status": "not-yet-selected",
  "dataset": {
    "family": "abstract-interpretation",
    "task": "Compute sound interval bounds for a sequence of mathematical-integer affine transforms.",
    "input_encoding": "Structured JSON; field meanings are stated in the specification.",
    "coverage": "Complete concrete inputs + interval transfer replay",
    "acceptance": [
      "Start from every integer in the initial interval.",
      "Apply each affine transform to the concrete set.",
      "Apply endpoint arithmetic to the interval, reordering endpoints for negative scales.",
      "Check every concrete value remains enclosed and the final bounds are tight."
    ],
    "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
    "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
  },
  "lesson": {
    "motivation": "Use interval summaries to enclose concrete values, and distinguish containment from exact sets.",
    "definitions": [
      {
        "term": "Concrete state set",
        "definition": "The actual values attainable from the declared input domain."
      },
      {
        "term": "Interval abstraction",
        "definition": "A lower and upper bound enclosing concrete values."
      },
      {
        "term": "Sound transfer",
        "definition": "An abstract operation that contains every concrete output."
      }
    ],
    "reasoning": [
      "Start from every integer in the initial interval.",
      "Apply each affine transform to the concrete set.",
      "Apply endpoint arithmetic to the interval, reordering endpoints for negative scales.",
      "Check every concrete value remains enclosed and the final bounds are tight."
    ],
    "worked_example": "Endpoint propagation encloses every concrete output. Negative multiplication swaps extrema; multiple transformations compose while preserving containment.",
    "complexity": "With a concrete interval of k integers and t transformations, this finite replay costs O(kt). Abstract endpoint propagation alone costs O(t).",
    "common_error": "A tight interval can include unattainable interior values; it is not necessarily an exact concrete set.",
    "further_work": "Add control-flow joins, fixed points, widening, and overflow-specific abstractions."
  },
  "related_ids": [
    "KL-FCS-038",
    "KL-FCS-039"
  ]
}
