{
  "format_version": 1,
  "certificate_type": "algebraic",
  "status": "verified_unsat",
  "detail": "full",
  "origin_class": "derived",
  "self_contained": true,
  "policy": { "file": "policy.co", "sha256": "470bfaea5ca9297edde3c6f9dd1287ac090b0db94091edd9bf067c4d63c22ec5", "parse_diagnostics": 0, "unroll_depth": [] },
  "question": { "action": "respond with permitted mortgage answer", "obligation_context": "has_mortgage_permission", "pins": [{ "name": "respond with permitted mortgage answer", "variable": 19, "value": 1, "source": "action" }, { "name": "has_mortgage_permission", "variable": 8, "value": 0, "source": "obligation" }, { "name": "names_specific_product", "variable": 5, "value": 1, "source": "conditioning" }] },
  "variables": {
    "x0": { "kind": "intent", "name": "ask mortgage advice", "colang": { "file": "policy.co", "line": 133 } },
    "x1": { "kind": "context", "name": "personal_recommendation", "colang": { "file": "policy.co", "line": 209, "flow": "investment specific product" } },
    "x3": { "kind": "context", "name": "suitability_assessment_done", "colang": { "file": "policy.co", "line": 229, "flow": "investment specific product" } },
    "x4": { "kind": "context", "name": "fair_value_assessed", "colang": { "file": "policy.co", "line": 233, "flow": "investment specific product" } },
    "x5": { "kind": "context", "name": "names_specific_product", "colang": { "file": "policy.co", "line": 247, "flow": "investment generic advice" } },
    "x6": { "kind": "gate", "colang": { "file": "policy.co", "line": 416, "flow": "mortgage gate" }, "definition": "x6 + x1 + x5 = 0", "named_definition": "x6 + $personal_recommendation + $names_specific_product = 0", "derived_from": ["x1", "x5"] },
    "x7": { "kind": "gate", "colang": { "file": "policy.co", "line": 416, "flow": "mortgage gate" }, "definition": "x7 + x1*x5 + x6 = 0", "named_definition": "x7 + $personal_recommendation*$names_specific_product + x6 = 0", "derived_from": ["x1", "x5", "x6"] },
    "x9": { "kind": "gate", "colang": { "file": "policy.co", "line": 417, "flow": "mortgage gate" }, "definition": "x9 = 1", "named_definition": "x9 = 1" },
    "x10": { "kind": "gate", "subkind": "quadratic-split", "colang": { "file": "policy.co", "line": 417, "flow": "mortgage gate" }, "definition": "x10 + x9*x20 = 0", "named_definition": "x10 + x9*aux_20 = 0", "derived_from": ["x20", "x9"], "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." },
    "x11": { "kind": "gate", "colang": { "file": "policy.co", "line": 424, "flow": "mortgage gate" }, "definition": "x11 + x3*x21 + x10 + x21 = 0", "named_definition": "x11 + $suitability_assessment_done*aux_21 + x10 + aux_21 = 0", "derived_from": ["x3", "x10", "x21"] },
    "x12": { "kind": "gate", "colang": { "file": "policy.co", "line": 424, "flow": "mortgage gate" }, "definition": "x12 + x10*x22 + x11 = 0", "named_definition": "x12 + x10*aux_22 + x11 = 0", "derived_from": ["x10", "x11", "x22"] },
    "x13": { "kind": "context", "name": "vulnerability_identified", "colang": { "file": "policy.co", "line": 426, "flow": "mortgage gate" } },
    "x14": { "kind": "gate", "colang": { "file": "policy.co", "line": 428, "flow": "mortgage gate" }, "definition": "x14 + x12 + x21*x23 = 0", "named_definition": "x14 + x12 + aux_21*aux_23 = 0", "derived_from": ["x12", "x21", "x23"] },
    "x15": { "kind": "gate", "colang": { "file": "policy.co", "line": 428, "flow": "mortgage gate" }, "definition": "x15 + x12*x24 + x14 = 0", "named_definition": "x15 + x12*aux_24 + x14 = 0", "derived_from": ["x12", "x14", "x24"] },
    "x16": { "kind": "context", "name": "execution_only_positive_election", "colang": { "file": "policy.co", "line": 430, "flow": "mortgage gate" } },
    "x17": { "kind": "gate", "colang": { "file": "policy.co", "line": 433, "flow": "mortgage gate" }, "definition": "x17 + x5*x26 + x15 = 0", "named_definition": "x17 + $names_specific_product*aux_26 + x15 = 0", "derived_from": ["x5", "x15", "x26"] },
    "x18": { "kind": "gate", "colang": { "file": "policy.co", "line": 433, "flow": "mortgage gate" }, "definition": "x18 + x15*x27 + x17 = 0", "named_definition": "x18 + x15*aux_27 + x17 = 0", "derived_from": ["x15", "x17", "x27"] },
    "x19": { "kind": "action", "subkind": "forced-materialisation", "name": "respond with permitted mortgage answer", "colang": { "file": "policy.co", "line": 435, "flow": "mortgage gate" }, "definition": "x19 + x0 + x0*x18 = 0", "named_definition": "respond with permitted mortgage answer + ask mortgage advice + ask mortgage advice*x18 = 0", "derived_from": ["x0", "x18"], "introduced_because": "This wire is protected or pinned, so it could not be absorbed into the equation that uses it; it stayed an explicit variable with a defining equation of its own." },
    "x20": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x20 + x0*x7 = 0", "named_definition": "aux_20 + ask mortgage advice*x7 = 0", "derived_from": ["x0", "x7"], "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." },
    "x21": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x21 + x0*x1 = 0", "named_definition": "aux_21 + ask mortgage advice*$personal_recommendation = 0", "derived_from": ["x0", "x1"], "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." },
    "x22": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x22 + x3*x21 + x21 = 0", "named_definition": "aux_22 + $suitability_assessment_done*aux_21 + aux_21 = 0", "derived_from": ["x21", "x3"], "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." },
    "x23": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x23 + x4*x13 + x13 = 0", "named_definition": "aux_23 + $fair_value_assessed*$vulnerability_identified + $vulnerability_identified = 0", "derived_from": ["x13", "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." },
    "x24": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x24 + x21*x23 = 0", "named_definition": "aux_24 + aux_21*aux_23 = 0", "derived_from": ["x21", "x23"], "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." },
    "x25": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x25 + x1 + x1*x16 + x16 = 1", "named_definition": "aux_25 + $personal_recommendation + $personal_recommendation*$execution_only_positive_election + $execution_only_positive_election = 1", "derived_from": ["x1", "x16"], "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." },
    "x26": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x26 + x0*x25 = 0", "named_definition": "aux_26 + ask mortgage advice*aux_25 = 0", "derived_from": ["x0", "x25"], "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." },
    "x27": { "kind": "aux", "subkind": "degree3-materialisation", "definition": "x27 + x5*x26 = 0", "named_definition": "aux_27 + $names_specific_product*aux_26 = 0", "derived_from": ["x26", "x5"], "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." }
  },
  "steps_to_contradiction": 61,
  "operations": [
    { "id": 33, "op": "INSERT", "source": "original-S1", "equation": "x0*x18 + x19 + x0 = 0", "named_equation": "ask mortgage advice*x18 + respond with permitted mortgage answer + ask mortgage advice = 0", "colang": { "file": "policy.co", "line": 435, "flow": "mortgage gate" }, "pivot": 54 },
    { "id": 518, "op": "MULTIPLY", "base_id": 33, "multiplier": "x18" },
    { "id": 13, "op": "INSERT", "source": "original-S2", "equation": "x19 = 1", "named_equation": "respond with permitted mortgage answer = 1", "reads_as": "respond with permitted mortgage answer holds", "pin": { "name": "respond with permitted mortgage answer", "value": 1 }, "pivot": 20 },
    { "id": 405, "op": "MULTIPLY", "base_id": 13, "multiplier": "x18", "pivot": 514 },
    { "id": 519, "op": "ADD", "parents": [518, 405], "pivot": 19 },
    { "id": 636, "op": "MULTIPLY", "base_id": 519, "multiplier": "x15" },
    { "id": 32, "op": "INSERT", "source": "original-S1", "equation": "x15*x27 + x18 + x17 = 0", "named_equation": "x15*aux_27 + x18 + x17 = 0", "colang": { "file": "policy.co", "line": 433, "flow": "mortgage gate" }, "pivot": 468 },
    { "id": 509, "op": "MULTIPLY", "base_id": 32, "multiplier": "x15" },
    { "id": 510, "op": "ADD", "parents": [509, 32], "pivot": 459 },
    { "id": 637, "op": "ADD", "parents": [636, 510] },
    { "id": 30, "op": "INSERT", "source": "original-S1", "equation": "x5*x26 + x27 = 0", "named_equation": "$names_specific_product*aux_26 + aux_27 = 0" },
    { "id": 29, "op": "INSERT", "source": "original-S1", "equation": "x5*x26 + x17 + x15 = 0", "named_equation": "$names_specific_product*aux_26 + x17 + x15 = 0", "colang": { "file": "policy.co", "line": 433, "flow": "mortgage gate" }, "pivot": 222 },
    { "id": 31, "op": "ADD", "parents": [30, 29], "pivot": 28 },
    { "id": 499, "op": "MULTIPLY", "base_id": 31, "multiplier": "x15" },
    { "id": 500, "op": "ADD", "parents": [499, 32], "pivot": 458 },
    { "id": 638, "op": "ADD", "parents": [637, 500], "pivot": 16 },
    { "id": 718, "op": "MULTIPLY", "base_id": 638, "multiplier": "x12" },
    { "id": 26, "op": "INSERT", "source": "original-S1", "equation": "x12*x24 + x15 + x14 = 0", "named_equation": "x12*aux_24 + x15 + x14 = 0", "colang": { "file": "policy.co", "line": 428, "flow": "mortgage gate" }, "pivot": 402 },
    { "id": 478, "op": "MULTIPLY", "base_id": 26, "multiplier": "x12" },
    { "id": 479, "op": "ADD", "parents": [478, 26], "pivot": 393 },
    { "id": 719, "op": "ADD", "parents": [718, 479] },
    { "id": 24, "op": "INSERT", "source": "original-S1", "equation": "x21*x23 + x24 = 0", "named_equation": "aux_21*aux_23 + aux_24 = 0" },
    { "id": 23, "op": "INSERT", "source": "original-S1", "equation": "x21*x23 + x14 + x12 = 0", "named_equation": "aux_21*aux_23 + x14 + x12 = 0", "colang": { "file": "policy.co", "line": 428, "flow": "mortgage gate" }, "pivot": 563 },
    { "id": 25, "op": "ADD", "parents": [24, 23], "pivot": 25 },
    { "id": 464, "op": "MULTIPLY", "base_id": 25, "multiplier": "x12" },
    { "id": 465, "op": "ADD", "parents": [464, 26], "pivot": 392 },
    { "id": 720, "op": "ADD", "parents": [719, 465] },
    { "id": 11, "op": "INSERT", "source": "original-S2", "equation": "x5 = 1", "named_equation": "$names_specific_product = 1", "reads_as": "$names_specific_product holds", "pin": { "name": "names_specific_product", "value": 1 }, "pivot": 6 },
    { "id": 341, "op": "MULTIPLY", "base_id": 11, "multiplier": "x1" },
    { "id": 14, "op": "INSERT", "source": "original-S1", "equation": "x1*x5 + x7 + x6 = 0", "named_equation": "$personal_recommendation*$names_specific_product + x7 + x6 = 0", "colang": { "file": "policy.co", "line": 416, "flow": "mortgage gate" }, "pivot": 75 },
    { "id": 342, "op": "ADD", "parents": [341, 14], "pivot": 8 },
    { "id": 575, "op": "MULTIPLY", "base_id": 342, "multiplier": "x0" },
    { "id": 15, "op": "INSERT", "source": "original-S1", "equation": "x0*x7 + x20 = 0", "named_equation": "ask mortgage advice*x7 + aux_20 = 0", "pivot": 43 },
    { "id": 576, "op": "ADD", "parents": [575, 15] },
    { "id": 1, "op": "INSERT", "source": "original-S2", "equation": "x6 + x5 + x1 = 0", "named_equation": "x6 + $names_specific_product + $personal_recommendation = 0", "colang": { "file": "policy.co", "line": 416, "flow": "mortgage gate" }, "pivot": 7 },
    { "id": 34, "op": "MULTIPLY", "base_id": 1, "multiplier": "x0", "pivot": 42 },
    { "id": 577, "op": "ADD", "parents": [576, 34] },
    { "id": 340, "op": "MULTIPLY", "base_id": 11, "multiplier": "x0", "pivot": 41 },
    { "id": 578, "op": "ADD", "parents": [577, 340] },
    { "id": 2, "op": "INSERT", "source": "original-S2", "equation": "x9 = 1", "named_equation": "x9 = 1", "reads_as": "x9 holds", "colang": { "file": "policy.co", "line": 417, "flow": "mortgage gate" }, "pivot": 10 },
    { "id": 87, "op": "MULTIPLY", "base_id": 2, "multiplier": "x20" },
    { "id": 17, "op": "INSERT", "source": "original-S1", "equation": "x9*x20 + x10 = 0", "named_equation": "x9*aux_20 + x10 = 0", "colang": { "file": "policy.co", "line": 417, "flow": "mortgage gate" }, "pivot": 326 },
    { "id": 88, "op": "ADD", "parents": [87, 17], "pivot": 21 },
    { "id": 579, "op": "ADD", "parents": [578, 88], "pivot": 11 },
    { "id": 651, "op": "MULTIPLY", "base_id": 579, "multiplier": "x11" },
    { "id": 19, "op": "INSERT", "source": "original-S1", "equation": "x3*x21 + x22 + x21 = 0", "named_equation": "$suitability_assessment_done*aux_21 + aux_22 + aux_21 = 0" },
    { "id": 18, "op": "INSERT", "source": "original-S1", "equation": "x3*x21 + x21 + x11 + x10 = 0", "named_equation": "$suitability_assessment_done*aux_21 + aux_21 + x11 + x10 = 0", "colang": { "file": "policy.co", "line": 424, "flow": "mortgage gate" }, "pivot": 156 },
    { "id": 20, "op": "ADD", "parents": [19, 18], "pivot": 23 },
    { "id": 428, "op": "MULTIPLY", "base_id": 20, "multiplier": "x10" },
    { "id": 21, "op": "INSERT", "source": "original-S1", "equation": "x10*x22 + x12 + x11 = 0", "named_equation": "x10*aux_22 + x12 + x11 = 0", "colang": { "file": "policy.co", "line": 424, "flow": "mortgage gate" }, "pivot": 353 },
    { "id": 429, "op": "ADD", "parents": [428, 21], "pivot": 342 },
    { "id": 652, "op": "ADD", "parents": [651, 429] },
    { "id": 514, "op": "MULTIPLY", "base_id": 33, "multiplier": "x0" },
    { "id": 391, "op": "MULTIPLY", "base_id": 13, "multiplier": "x0", "pivot": 55 },
    { "id": 515, "op": "ADD", "parents": [514, 391] },
    { "id": 516, "op": "ADD", "parents": [515, 33] },
    { "id": 517, "op": "ADD", "parents": [516, 13], "pivot": 1 },
    { "id": 617, "op": "MULTIPLY", "base_id": 517, "multiplier": "x11", "pivot": 47 },
    { "id": 653, "op": "ADD", "parents": [652, 617], "pivot": 13 },
    { "id": 721, "op": "ADD", "parents": [720, 653] },
    { "id": 722, "op": "ADD", "parents": [721, 579] }
  ],
  "final_step": { "op": "ADD", "inputs": [722, 517], "instruction": "Compute the linear combination of the final inputs to derive 0 = 1." },
  "provenance": { "declared": false, "controls": {}, "undeclared": ["x1", "x3", "x4", "x5", "x13", "x16"], "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."] },
  "control_integrity": { "checked": true, "clean": true, "findings": [] },
  "detection": { "computed": true, "dependent": false, "atoms": [], "bound": null, "uncalibrated": [] }
}