{
  "handle": "Compare",
  "mechanism": "Evaluate relation between two values: Equal, Less, Greater, Incomparable.",
  "gloss": "Relational check",
  "invariants": [
    "Single outcome: Compare(A, B) returns exactly one of Equal, Less, Greater, or Incomparable.",
    "Reflexive: A equals A.",
    "Operand reversal: Compare(B, A) preserves Equal and Incomparable, and swaps Less with Greater.",
    "Exact equality is transitive; a tolerance-based Equal does not carry this guarantee."
  ],
  "_meta": {
    "tier": 1,
    "ring": 0,
    "path": [
      "Infrastructure",
      "Primitives"
    ],
    "supersedes": [
      "sema:Compare#mh:SHA-256:ebab280da9048edf2cc508cf0e554b153e3afd516056b4c2ae51ca85ec6ad2e1"
    ],
    "related": [
      "Webtrace#8a90"
    ]
  },
  "failure_modes": [
    "Tolerance chaining: under near-equality A≈B and B≈C without A≈C, so grouping by equality becomes order-dependent.",
    "Undeclared coercion: values are converted by a rule the comparator did not declare, producing Equal, Less, or Greater where its declared relation would return Incomparable."
  ],
  "sema_id": "sema:Compare#mh:SHA-256:15a079e73bd3c280efbe2b35ab4b082b2302ab65e5dd5eb1c4fba1a5f554cebe",
  "sema_ref": "Compare#15a0",
  "sema_stub": "15a0",
  "sema_layer": "Infrastructure",
  "sema_category": "Primitives",
  "used_by": {
    "composes_with": {
      "ParetoFront": "sema:ParetoFront#mh:SHA-256:e6f5d6269118c342b52699a99154c79dc1e7b39e04c12bafc2f605805c0dfd02"
    },
    "references": {
      "TranslationProxy": "sema:TranslationProxy#mh:SHA-256:1db28b5e69a017012cdbdbe4355c97fba4dcd8e3522a82f9eb9dc5613bc293af",
      "Webtrace": "sema:Webtrace#mh:SHA-256:8a904425ffa4d0169e855b38dedfad986064c45cee058f0a7fb126ef95706d32"
    }
  }
}
