{
  "name": "SAT / SMT",
  "version": "1.0.0",
  "area": {
    "name": "SAT / SMT",
    "slug": "sat-smt",
    "group": "Languages & logic",
    "kind": "sat",
    "summary": "Make satisfiability evidence explicit: a model for a positive answer, or complete finite coverage for a negative one.",
    "definitions": [
      {
        "term": "CNF",
        "definition": "A conjunction of clauses, each a disjunction of signed literals."
      },
      {
        "term": "Satisfying model",
        "definition": "An assignment making every clause true."
      },
      {
        "term": "Bit-vector theory",
        "definition": "Fixed-width values with arithmetic modulo 2ʷ; distinct from unbounded integers."
      }
    ],
    "methodology": [
      "Interpret each literal using its variable number and sign.",
      "Enumerate the entire declared Boolean or bit-vector domain.",
      "Check the supplied model against every constraint.",
      "For unsatisfiability, require complete coverage with no satisfying assignment."
    ],
    "complexity": "Boolean enumeration examines 2ⁿ assignments. A width-w unary bit-vector instance examines 2ʷ values.",
    "common_error": "A solver’s unverified UNSAT verdict is not a certificate. Fixed-width overflow is part of the theory.",
    "next_question": "Add checked UNSAT proof formats and solver-backed artifacts with pinned versions.",
    "references": [
      "https://smt-lib.org/theories-FixedSizeBitVectors.shtml"
    ]
  },
  "records": [
    {
      "id": "KL-FCS-005",
      "version": "1.0.0",
      "domain": "SAT / SMT",
      "kind": "sat",
      "title": "A satisfiable CNF with a witness",
      "problem": "Decide (a ∨ b) ∧ (¬a ∨ b) ∧ (a ∨ ¬b). Signed literals use DIMACS-style variable numbers.",
      "specification": {
        "variables": 2,
        "clauses": [
          [
            1,
            2
          ],
          [
            -1,
            2
          ],
          [
            1,
            -2
          ]
        ]
      },
      "claim": {
        "satisfiable": true
      },
      "witness": {
        "assignment": [
          true,
          true
        ]
      },
      "verification_scope": "Complete Boolean enumeration · 4 assignments",
      "explanation": "The supplied model a=true, b=true satisfies all three clauses. Enumeration checks the verdict over every assignment.",
      "limitations": "A tiny propositional instance; no solver performance claim or general SAT algorithm benchmark.",
      "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://smt-lib.org/theories-FixedSizeBitVectors.shtml"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "sat-smt",
        "task": "Decide (a ∨ b) ∧ (¬a ∨ b) ∧ (a ∨ ¬b). Signed literals use DIMACS-style variable numbers.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete Boolean enumeration · 4 assignments",
        "acceptance": [
          "Interpret each literal using its variable number and sign.",
          "Enumerate the entire declared Boolean or bit-vector domain.",
          "Check the supplied model against every constraint.",
          "For unsatisfiability, require complete coverage with no satisfying assignment."
        ],
        "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": "Make satisfiability evidence explicit: a model for a positive answer, or complete finite coverage for a negative one.",
        "definitions": [
          {
            "term": "CNF",
            "definition": "A conjunction of clauses, each a disjunction of signed literals."
          },
          {
            "term": "Satisfying model",
            "definition": "An assignment making every clause true."
          },
          {
            "term": "Bit-vector theory",
            "definition": "Fixed-width values with arithmetic modulo 2ʷ; distinct from unbounded integers."
          }
        ],
        "reasoning": [
          "Interpret each literal using its variable number and sign.",
          "Enumerate the entire declared Boolean or bit-vector domain.",
          "Check the supplied model against every constraint.",
          "For unsatisfiability, require complete coverage with no satisfying assignment."
        ],
        "worked_example": "The supplied model a=true, b=true satisfies all three clauses. Enumeration checks the verdict over every assignment.",
        "complexity": "Boolean enumeration examines 2ⁿ assignments. A width-w unary bit-vector instance examines 2ʷ values.",
        "common_error": "A solver’s unverified UNSAT verdict is not a certificate. Fixed-width overflow is part of the theory.",
        "further_work": "Add checked UNSAT proof formats and solver-backed artifacts with pinned versions."
      },
      "related_ids": [
        "KL-FCS-006",
        "KL-FCS-007"
      ]
    },
    {
      "id": "KL-FCS-006",
      "version": "1.0.0",
      "domain": "SAT / SMT",
      "kind": "sat",
      "title": "An unsatisfiable CNF",
      "problem": "Decide a ∧ ¬a.",
      "specification": {
        "variables": 1,
        "clauses": [
          [
            1
          ],
          [
            -1
          ]
        ]
      },
      "claim": {
        "satisfiable": false
      },
      "witness": {
        "method": "exhaustive enumeration"
      },
      "verification_scope": "Complete Boolean enumeration · 2 assignments",
      "explanation": "When a is false, the first clause fails. When a is true, the second clause fails. Enumeration covers the entire domain.",
      "limitations": "Exhaustive enumeration is the certificate method here. This is not a DRAT/LRAT proof or a scalable UNSAT benchmark.",
      "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://smt-lib.org/theories-FixedSizeBitVectors.shtml"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "sat-smt",
        "task": "Decide a ∧ ¬a.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete Boolean enumeration · 2 assignments",
        "acceptance": [
          "Interpret each literal using its variable number and sign.",
          "Enumerate the entire declared Boolean or bit-vector domain.",
          "Check the supplied model against every constraint.",
          "For unsatisfiability, require complete coverage with no satisfying assignment."
        ],
        "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": "Make satisfiability evidence explicit: a model for a positive answer, or complete finite coverage for a negative one.",
        "definitions": [
          {
            "term": "CNF",
            "definition": "A conjunction of clauses, each a disjunction of signed literals."
          },
          {
            "term": "Satisfying model",
            "definition": "An assignment making every clause true."
          },
          {
            "term": "Bit-vector theory",
            "definition": "Fixed-width values with arithmetic modulo 2ʷ; distinct from unbounded integers."
          }
        ],
        "reasoning": [
          "Interpret each literal using its variable number and sign.",
          "Enumerate the entire declared Boolean or bit-vector domain.",
          "Check the supplied model against every constraint.",
          "For unsatisfiability, require complete coverage with no satisfying assignment."
        ],
        "worked_example": "When a is false, the first clause fails. When a is true, the second clause fails. Enumeration covers the entire domain.",
        "complexity": "Boolean enumeration examines 2ⁿ assignments. A width-w unary bit-vector instance examines 2ʷ values.",
        "common_error": "A solver’s unverified UNSAT verdict is not a certificate. Fixed-width overflow is part of the theory.",
        "further_work": "Add checked UNSAT proof formats and solver-backed artifacts with pinned versions."
      },
      "related_ids": [
        "KL-FCS-005",
        "KL-FCS-007"
      ]
    },
    {
      "id": "KL-FCS-007",
      "version": "1.0.0",
      "domain": "SAT / SMT",
      "kind": "smt",
      "title": "A four-bit wraparound model",
      "problem": "Solve x + 1 = 0 in unsigned four-bit bit-vector arithmetic.",
      "specification": {
        "width": 4,
        "addend": 1,
        "rhs": 0,
        "theory": "Unsigned four-bit values; addition modulo 16."
      },
      "claim": {
        "solutions": [
          15
        ]
      },
      "witness": {
        "x": 15
      },
      "verification_scope": "Complete bit-vector enumeration · 16 values",
      "explanation": "The value 15 wraps to 0 after adding 1. All other four-bit values fail the equality.",
      "limitations": "A fixed bit-vector theory example checked by enumeration, not an SMT-solver run or a statement about unbounded integers.",
      "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://smt-lib.org/theories-FixedSizeBitVectors.shtml"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "sat-smt",
        "task": "Solve x + 1 = 0 in unsigned four-bit bit-vector arithmetic.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete bit-vector enumeration · 16 values",
        "acceptance": [
          "Interpret each literal using its variable number and sign.",
          "Enumerate the entire declared Boolean or bit-vector domain.",
          "Check the supplied model against every constraint.",
          "For unsatisfiability, require complete coverage with no satisfying assignment."
        ],
        "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": "Make satisfiability evidence explicit: a model for a positive answer, or complete finite coverage for a negative one.",
        "definitions": [
          {
            "term": "CNF",
            "definition": "A conjunction of clauses, each a disjunction of signed literals."
          },
          {
            "term": "Satisfying model",
            "definition": "An assignment making every clause true."
          },
          {
            "term": "Bit-vector theory",
            "definition": "Fixed-width values with arithmetic modulo 2ʷ; distinct from unbounded integers."
          }
        ],
        "reasoning": [
          "Interpret each literal using its variable number and sign.",
          "Enumerate the entire declared Boolean or bit-vector domain.",
          "Check the supplied model against every constraint.",
          "For unsatisfiability, require complete coverage with no satisfying assignment."
        ],
        "worked_example": "The value 15 wraps to 0 after adding 1. All other four-bit values fail the equality.",
        "complexity": "Boolean enumeration examines 2ⁿ assignments. A width-w unary bit-vector instance examines 2ʷ values.",
        "common_error": "A solver’s unverified UNSAT verdict is not a certificate. Fixed-width overflow is part of the theory.",
        "further_work": "Add checked UNSAT proof formats and solver-backed artifacts with pinned versions."
      },
      "related_ids": [
        "KL-FCS-005",
        "KL-FCS-006"
      ]
    }
  ],
  "verification": [
    {
      "id": "KL-FCS-005",
      "status": "mechanically-checked",
      "check_units": 4,
      "scope": "Complete Boolean enumeration · 4 assignments",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-006",
      "status": "mechanically-checked",
      "check_units": 2,
      "scope": "Complete Boolean enumeration · 2 assignments",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-007",
      "status": "mechanically-checked",
      "check_units": 16,
      "scope": "Complete bit-vector enumeration · 16 values",
      "review_status": "awaiting-independent-review"
    }
  ]
}
