{
  "certificate_detail": "full",
  "corrective_action": {
    "candidates_rejected_for_over_blocking": 0,
    "certificate": {
      "certificate_type": "algebraic",
      "control_integrity": {
        "checked": true,
        "clean": true,
        "findings": []
      },
      "detail": "full",
      "detection": {
        "atoms": [],
        "bound": null,
        "computed": true,
        "dependent": false,
        "uncalibrated": []
      },
      "final_step": {
        "inputs": [
          2154,
          30
        ],
        "instruction": "Compute the linear combination of the final inputs to derive 0 = 1.",
        "op": "ADD"
      },
      "format_version": 1,
      "operations": [
        {
          "equation": "x35 = 0",
          "id": 28,
          "named_equation": "$fair_value_assessed = 0",
          "op": "INSERT",
          "pin": {
            "name": "fair_value_assessed",
            "value": 0
          },
          "pivot": 36,
          "reads_as": "$fair_value_assessed does not hold",
          "source": "original-S2"
        },
        {
          "base_id": 28,
          "id": 2154,
          "multiplier": "x56",
          "op": "MULTIPLY"
        },
        {
          "equation": "x35*x56 = 1",
          "id": 30,
          "named_equation": "$fair_value_assessed*respond with permitted investment answer = 1",
          "op": "INSERT",
          "origin": "patch",
          "pivot": 2595,
          "source": "original-S2"
        }
      ],
      "origin_class": "derived",
      "policy": {
        "file": "policy.co",
        "parse_diagnostics": 0,
        "sha256": "470bfaea5ca9297edde3c6f9dd1287ac090b0db94091edd9bf067c4d63c22ec5",
        "unroll_depth": []
      },
      "provenance": {
        "controls": {},
        "declared": false,
        "limits": [
          "The declaration may be false: nothing here verifies that the system named as asserting a control is that system. It is bounded by custody, not proof: the source manifest is a reviewed artefact bound to a policy digest and carried on this certificate with its own hash, so a false declaration is a signed and attributable statement rather than an assumption.",
          "A resolver may launder an argument into a reading: returning a value taken from the model's arguments is the one thing a resolver cannot be checked for in general. It is bounded by the argument-invariance conformance test, which mutates the arguments with the systems of record held fixed and requires the readings not to move. That is a test and not a proof, and a resolver that passes it may still launder on an input the mutation did not reach.",
          "Detection is bounded, not proved: a detection-dependent obligation's bound is a union over rates measured on a stated corpus. A corpus unrepresentative of the traffic gives a number that is arithmetically correct and practically wrong, which is why the corpus, its size and the date it was measured travel with the bound."
        ],
        "undeclared": [
          "x2",
          "x3",
          "x4",
          "x5",
          "x6",
          "x10",
          "x13",
          "x16",
          "x17",
          "x20",
          "x25",
          "x26",
          "x29",
          "x35",
          "x37",
          "x42",
          "x46",
          "x47"
        ]
      },
      "question": {
        "action": "respond with permitted investment answer",
        "obligation_context": "fair_value_assessed",
        "pins": [
          {
            "name": "respond with permitted investment answer",
            "source": "action",
            "value": 1,
            "variable": 56
          },
          {
            "name": "fair_value_assessed",
            "source": "obligation",
            "value": 0,
            "variable": 35
          },
          {
            "name": "personal_recommendation",
            "source": "conditioning",
            "value": 1,
            "variable": 2
          }
        ]
      },
      "self_contained": true,
      "status": "verified_unsat",
      "steps_to_contradiction": 3,
      "variables": {
        "x0": {
          "colang": {
            "file": "policy.co",
            "line": 104
          },
          "kind": "intent",
          "name": "ask investment advice"
        },
        "x1": {
          "colang": {
            "file": "policy.co",
            "line": 110
          },
          "kind": "intent",
          "name": "ask about specific fund"
        },
        "x10": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 219
          },
          "kind": "context",
          "name": "has_advising_permission"
        },
        "x11": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 219
          },
          "definition": "x11 + x4 + x10 = 0",
          "derived_from": [
            "x4",
            "x10"
          ],
          "kind": "gate",
          "named_definition": "x11 + $firm_is_authorised + $has_advising_permission = 0"
        },
        "x12": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 219
          },
          "definition": "x12 + x4 + x4*x10 + x10 + x11 = 1",
          "derived_from": [
            "x4",
            "x10",
            "x11"
          ],
          "kind": "gate",
          "named_definition": "x12 + $firm_is_authorised + $firm_is_authorised*$has_advising_permission + $has_advising_permission + x11 = 1"
        },
        "x13": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 220
          },
          "kind": "context",
          "name": "is_targeted_support"
        },
        "x14": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 222
          },
          "definition": "x14 + x9 + x13*x60 + x60 = 0",
          "derived_from": [
            "x9",
            "x13",
            "x60"
          ],
          "kind": "gate",
          "named_definition": "x14 + x9 + $is_targeted_support*aux_60 + aux_60 = 0"
        },
        "x15": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 222
          },
          "definition": "x15 + x9*x61 + x14 = 0",
          "derived_from": [
            "x9",
            "x14",
            "x61"
          ],
          "kind": "gate",
          "named_definition": "x15 + x9*aux_61 + x14 = 0"
        },
        "x16": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "kind": "context",
          "name": "has_targeted_support_permission"
        },
        "x17": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "kind": "context",
          "name": "consumer_segment_predefined"
        },
        "x18": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "definition": "x18 + x16 + x17 = 0",
          "derived_from": [
            "x16",
            "x17"
          ],
          "kind": "gate",
          "named_definition": "x18 + $has_targeted_support_permission + $consumer_segment_predefined = 0"
        },
        "x19": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "definition": "x19 + x16 + x16*x17 + x17 + x18 = 1",
          "derived_from": [
            "x16",
            "x17",
            "x18"
          ],
          "kind": "gate",
          "named_definition": "x19 + $has_targeted_support_permission + $has_targeted_support_permission*$consumer_segment_predefined + $consumer_segment_predefined + x18 = 1"
        },
        "x2": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 209
          },
          "kind": "context",
          "name": "personal_recommendation"
        },
        "x20": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "kind": "context",
          "name": "suggestion_is_ready_made"
        },
        "x21": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "definition": "x21 + x19 + x20 = 1",
          "derived_from": [
            "x19",
            "x20"
          ],
          "kind": "gate",
          "named_definition": "x21 + x19 + $suggestion_is_ready_made = 1"
        },
        "x22": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 225
          },
          "definition": "x22 + x19 + x19*x20 + x21 = 0",
          "derived_from": [
            "x19",
            "x20",
            "x21"
          ],
          "kind": "gate",
          "named_definition": "x22 + x19 + x19*$suggestion_is_ready_made + x21 = 0"
        },
        "x23": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 227
          },
          "definition": "x23 + x15 + x22*x62 = 0",
          "derived_from": [
            "x15",
            "x22",
            "x62"
          ],
          "kind": "gate",
          "named_definition": "x23 + x15 + x22*aux_62 = 0"
        },
        "x24": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 227
          },
          "definition": "x24 + x15*x63 + x23 = 0",
          "derived_from": [
            "x15",
            "x23",
            "x63"
          ],
          "kind": "gate",
          "named_definition": "x24 + x15*aux_63 + x23 = 0"
        },
        "x25": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "kind": "context",
          "name": "suitability_assessment_done"
        },
        "x26": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "kind": "context",
          "name": "risk_profile_assessed"
        },
        "x27": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "definition": "x27 + x25 + x26 = 0",
          "derived_from": [
            "x25",
            "x26"
          ],
          "kind": "gate",
          "named_definition": "x27 + $suitability_assessment_done + $risk_profile_assessed = 0"
        },
        "x28": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "definition": "x28 + x25 + x25*x26 + x26 + x27 = 1",
          "derived_from": [
            "x25",
            "x26",
            "x27"
          ],
          "kind": "gate",
          "named_definition": "x28 + $suitability_assessment_done + $suitability_assessment_done*$risk_profile_assessed + $risk_profile_assessed + x27 = 1"
        },
        "x29": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "kind": "context",
          "name": "capacity_for_loss_assessed"
        },
        "x3": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 209
          },
          "kind": "context",
          "name": "is_inducement"
        },
        "x30": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "definition": "x30 + x28 + x29 = 1",
          "derived_from": [
            "x28",
            "x29"
          ],
          "kind": "gate",
          "named_definition": "x30 + x28 + $capacity_for_loss_assessed = 1"
        },
        "x31": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 229
          },
          "definition": "x31 + x28 + x28*x29 + x30 = 0",
          "derived_from": [
            "x28",
            "x29",
            "x30"
          ],
          "kind": "gate",
          "named_definition": "x31 + x28 + x28*$capacity_for_loss_assessed + x30 = 0"
        },
        "x32": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 231
          },
          "definition": "x32 + x24 + x31*x59 = 0",
          "derived_from": [
            "x24",
            "x31",
            "x59"
          ],
          "kind": "gate",
          "named_definition": "x32 + x24 + x31*aux_59 = 0"
        },
        "x33": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 231
          },
          "definition": "x33 + x24*x64 + x32 = 0",
          "derived_from": [
            "x24",
            "x32",
            "x64"
          ],
          "kind": "gate",
          "named_definition": "x33 + x24*aux_64 + x32 = 0"
        },
        "x35": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 233
          },
          "kind": "context",
          "name": "fair_value_assessed"
        },
        "x36": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 233
          },
          "definition": "x36 = 1",
          "kind": "gate",
          "named_definition": "x36 = 1"
        },
        "x37": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 233
          },
          "kind": "context",
          "name": "target_market_matches"
        },
        "x38": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 233
          },
          "definition": "x38 + x36 + x37 = 1",
          "derived_from": [
            "x36",
            "x37"
          ],
          "kind": "gate",
          "named_definition": "x38 + x36 + $target_market_matches = 1"
        },
        "x39": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 233
          },
          "definition": "x39 + x36 + x36*x37 + x38 = 0",
          "derived_from": [
            "x36",
            "x37",
            "x38"
          ],
          "kind": "gate",
          "named_definition": "x39 + x36 + x36*$target_market_matches + x38 = 0"
        },
        "x4": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 213
          },
          "kind": "context",
          "name": "firm_is_authorised"
        },
        "x40": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 235
          },
          "definition": "x40 + x33 + x39*x59 = 0",
          "derived_from": [
            "x33",
            "x39",
            "x59"
          ],
          "kind": "gate",
          "named_definition": "x40 + x33 + x39*aux_59 = 0"
        },
        "x41": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 235
          },
          "definition": "x41 + x33*x65 + x40 = 0",
          "derived_from": [
            "x33",
            "x40",
            "x65"
          ],
          "kind": "gate",
          "named_definition": "x41 + x33*aux_65 + x40 = 0"
        },
        "x42": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 237
          },
          "kind": "context",
          "name": "consultant_receives_higher_commission"
        },
        "x43": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 239
          },
          "definition": "x43 + x41 + x42*x59 = 0",
          "derived_from": [
            "x41",
            "x42",
            "x59"
          ],
          "kind": "gate",
          "named_definition": "x43 + x41 + $consultant_receives_higher_commission*aux_59 = 0"
        },
        "x44": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 239
          },
          "definition": "x44 + x41*x66 + x43 = 0",
          "derived_from": [
            "x41",
            "x43",
            "x66"
          ],
          "kind": "gate",
          "named_definition": "x44 + x41*aux_66 + x43 = 0"
        },
        "x45": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 241
          },
          "definition": "x45 + x1 + x1*x44 = 0",
          "derived_from": [
            "x1",
            "x44"
          ],
          "introduced_because": "Both inputs of an XOR were AND gates, which would have put two quadratic terms in one equation; the first was split into its own variable to keep exactly one.",
          "kind": "gate",
          "named_definition": "x45 + ask about specific fund + ask about specific fund*x44 = 0",
          "subkind": "quadratic-split"
        },
        "x46": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 247
          },
          "kind": "context",
          "name": "is_generic_asset_class_only"
        },
        "x47": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 247
          },
          "kind": "context",
          "name": "names_specific_product"
        },
        "x48": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 248
          },
          "definition": "x48 + x0*x67 = 0",
          "derived_from": [
            "x0",
            "x67"
          ],
          "introduced_because": "Both inputs of an XOR were AND gates, which would have put two quadratic terms in one equation; the first was split into its own variable to keep exactly one.",
          "kind": "action",
          "name": "respond with generic asset class commentary",
          "named_definition": "respond with generic asset class commentary + ask investment advice*aux_67 = 0",
          "subkind": "quadratic-split"
        },
        "x49": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 253
          },
          "definition": "x49 + x0*x68 + x48 = 0",
          "derived_from": [
            "x0",
            "x48",
            "x68"
          ],
          "kind": "gate",
          "named_definition": "x49 + ask investment advice*aux_68 + respond with generic asset class commentary = 0"
        },
        "x5": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 214
          },
          "kind": "context",
          "name": "promotion_approved"
        },
        "x50": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 253
          },
          "definition": "x50 + x48*x69 + x49 = 0",
          "derived_from": [
            "x48",
            "x49",
            "x69"
          ],
          "kind": "gate",
          "named_definition": "x50 + respond with generic asset class commentary*aux_69 + x49 = 0"
        },
        "x51": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 255
          },
          "definition": "x51 + x25 + x29 = 0",
          "derived_from": [
            "x25",
            "x29"
          ],
          "kind": "gate",
          "named_definition": "x51 + $suitability_assessment_done + $capacity_for_loss_assessed = 0"
        },
        "x52": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 255
          },
          "definition": "x52 + x25 + x25*x29 + x29 + x51 = 1",
          "derived_from": [
            "x25",
            "x29",
            "x51"
          ],
          "kind": "gate",
          "named_definition": "x52 + $suitability_assessment_done + $suitability_assessment_done*$capacity_for_loss_assessed + $capacity_for_loss_assessed + x51 = 1"
        },
        "x53": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 257
          },
          "definition": "x53 + x0*x52 + x50 = 0",
          "derived_from": [
            "x0",
            "x50",
            "x52"
          ],
          "kind": "gate",
          "named_definition": "x53 + ask investment advice*x52 + x50 = 0"
        },
        "x54": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 257
          },
          "definition": "x54 + x50*x70 + x53 = 0",
          "derived_from": [
            "x50",
            "x53",
            "x70"
          ],
          "kind": "gate",
          "named_definition": "x54 + x50*aux_70 + x53 = 0"
        },
        "x55": {
          "colang": {
            "file": "policy.co",
            "flow": "investment generic advice",
            "line": 259
          },
          "definition": "x55 + x0 + x0*x54 + x45 = 0",
          "derived_from": [
            "x0",
            "x45",
            "x54"
          ],
          "kind": "gate",
          "named_definition": "x55 + ask investment advice + ask investment advice*x54 + x45 = 0"
        },
        "x56": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 241
          },
          "definition": "x56 + x45*x71 + x55 = 0",
          "derived_from": [
            "x45",
            "x55",
            "x71"
          ],
          "kind": "action",
          "name": "respond with permitted investment answer",
          "named_definition": "respond with permitted investment answer + x45*aux_71 + x55 = 0"
        },
        "x57": {
          "definition": "x57 + x3 + x3*x4 = 0",
          "derived_from": [
            "x3",
            "x4"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_57 + $is_inducement + $is_inducement*$firm_is_authorised = 0",
          "subkind": "degree3-materialisation"
        },
        "x58": {
          "definition": "x58 + x1*x57 = 0",
          "derived_from": [
            "x1",
            "x57"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_58 + ask about specific fund*aux_57 = 0",
          "subkind": "degree3-materialisation"
        },
        "x59": {
          "definition": "x59 + x1*x2 = 0",
          "derived_from": [
            "x1",
            "x2"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_59 + ask about specific fund*$personal_recommendation = 0",
          "subkind": "degree3-materialisation"
        },
        "x6": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 214
          },
          "kind": "context",
          "name": "has_s21_approver_permission"
        },
        "x60": {
          "definition": "x60 + x12*x59 = 0",
          "derived_from": [
            "x59",
            "x12"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_60 + x12*aux_59 = 0",
          "subkind": "degree3-materialisation"
        },
        "x61": {
          "definition": "x61 + x13*x60 + x60 = 0",
          "derived_from": [
            "x60",
            "x13"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_61 + $is_targeted_support*aux_60 + aux_60 = 0",
          "subkind": "degree3-materialisation"
        },
        "x62": {
          "definition": "x62 + x13*x59 = 0",
          "derived_from": [
            "x59",
            "x13"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_62 + $is_targeted_support*aux_59 = 0",
          "subkind": "degree3-materialisation"
        },
        "x63": {
          "definition": "x63 + x22*x62 = 0",
          "derived_from": [
            "x62",
            "x22"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_63 + x22*aux_62 = 0",
          "subkind": "degree3-materialisation"
        },
        "x64": {
          "definition": "x64 + x31*x59 = 0",
          "derived_from": [
            "x59",
            "x31"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_64 + x31*aux_59 = 0",
          "subkind": "degree3-materialisation"
        },
        "x65": {
          "definition": "x65 + x39*x59 = 0",
          "derived_from": [
            "x59",
            "x39"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_65 + x39*aux_59 = 0",
          "subkind": "degree3-materialisation"
        },
        "x66": {
          "definition": "x66 + x42*x59 = 0",
          "derived_from": [
            "x59",
            "x42"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_66 + $consultant_receives_higher_commission*aux_59 = 0",
          "subkind": "degree3-materialisation"
        },
        "x67": {
          "definition": "x67 + x46 + x46*x47 = 0",
          "derived_from": [
            "x46",
            "x47"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_67 + $is_generic_asset_class_only + $is_generic_asset_class_only*$names_specific_product = 0",
          "subkind": "degree3-materialisation"
        },
        "x68": {
          "definition": "x68 + x2 + x2*x10 = 0",
          "derived_from": [
            "x2",
            "x10"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_68 + $personal_recommendation + $personal_recommendation*$has_advising_permission = 0",
          "subkind": "degree3-materialisation"
        },
        "x69": {
          "definition": "x69 + x0*x68 = 0",
          "derived_from": [
            "x0",
            "x68"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_69 + ask investment advice*aux_68 = 0",
          "subkind": "degree3-materialisation"
        },
        "x7": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 214
          },
          "definition": "x7 + x5 + x6 = 0",
          "derived_from": [
            "x5",
            "x6"
          ],
          "kind": "gate",
          "named_definition": "x7 + $promotion_approved + $has_s21_approver_permission = 0"
        },
        "x70": {
          "definition": "x70 + x0*x52 = 0",
          "derived_from": [
            "x0",
            "x52"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_70 + ask investment advice*x52 = 0",
          "subkind": "degree3-materialisation"
        },
        "x71": {
          "definition": "x71 + x0 + x0*x54 = 0",
          "derived_from": [
            "x0",
            "x54"
          ],
          "introduced_because": "An AND gate fed another AND gate, which would have made the equation cubic; the inner one was given its own variable to keep the system quasilinear.",
          "kind": "aux",
          "named_definition": "aux_71 + ask investment advice + ask investment advice*x54 = 0",
          "subkind": "degree3-materialisation"
        },
        "x8": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 214
          },
          "definition": "x8 + x5 + x5*x6 + x6 + x7 = 1",
          "derived_from": [
            "x5",
            "x6",
            "x7"
          ],
          "kind": "gate",
          "named_definition": "x8 + $promotion_approved + $promotion_approved*$has_s21_approver_permission + $has_s21_approver_permission + x7 = 1"
        },
        "x9": {
          "colang": {
            "file": "policy.co",
            "flow": "investment specific product",
            "line": 214
          },
          "definition": "x9 + x8*x58 = 0",
          "derived_from": [
            "x58",
            "x8"
          ],
          "introduced_because": "Both inputs of an XOR were AND gates, which would have put two quadratic terms in one equation; the first was split into its own variable to keep exactly one.",
          "kind": "gate",
          "named_definition": "x9 + x8*aux_58 = 0",
          "subkind": "quadratic-split"
        }
      }
    },
    "equation": "x35*x56 = 1",
    "guardrail_patch": "Patch: allow 'respond with permitted investment answer' only when: not $personal_recommendation or $fair_value_assessed",
    "may_over_block": false,
    "over_blocking": {
      "decided_by": "candidate-derivation",
      "outcome": "proved_free",
      "self_contained": true
    },
    "search_truncated": false,
    "semantic_disruption_score": 2
  },
  "decided_by": "none",
  "degrees_of_freedom": 31,
  "free_variables": [
    1,
    3,
    4,
    5,
    6,
    8,
    9,
    13,
    14,
    15,
    16,
    17,
    19,
    20,
    22,
    23,
    24,
    26,
    32,
    33,
    34,
    37,
    41,
    42,
    43,
    46,
    47,
    57,
    58,
    60,
    62
  ],
  "phase4_gate": {
    "condensed_variables": 29,
    "ran": false,
    "threshold": 24
  },
  "stall": {
    "diagnosis": "the degree-2 closure reached a fixpoint at generation 10, rank 3559, linear deficit 31. The worklist ran dry, so this is a property of the method on this system and no budget changes it. Phase 3 is the endgame that can pass it. Nullity 447 is approximately C(d,2) - d for linear deficit d = 31; it is quadratic in the deficit, not linear in the variable count.",
    "exit_reason": "closure-fixpoint",
    "final_generation_rows": 0,
    "final_nullity": 447,
    "final_rank": 3559,
    "generations": 10,
    "linear_deficit": 31,
    "phase2_exit_nullity": 447,
    "phase2_exit_rank": 3559
  },
  "status": "STALL",
  "vulnerability": "The system is under-constrained; the expansion stalled with degrees of freedom remaining."
}
