{
  "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": [
        722,
        517
      ],
      "instruction": "Compute the linear combination of the final inputs to derive 0 = 1.",
      "op": "ADD"
    },
    "format_version": 1,
    "operations": [
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 435
        },
        "equation": "x0*x18 + x19 + x0 = 0",
        "id": 33,
        "named_equation": "ask mortgage advice*x18 + respond with permitted mortgage answer + ask mortgage advice = 0",
        "op": "INSERT",
        "pivot": 54,
        "source": "original-S1"
      },
      {
        "base_id": 33,
        "id": 518,
        "multiplier": "x18",
        "op": "MULTIPLY"
      },
      {
        "equation": "x19 = 1",
        "id": 13,
        "named_equation": "respond with permitted mortgage answer = 1",
        "op": "INSERT",
        "pin": {
          "name": "respond with permitted mortgage answer",
          "value": 1
        },
        "pivot": 20,
        "reads_as": "respond with permitted mortgage answer holds",
        "source": "original-S2"
      },
      {
        "base_id": 13,
        "id": 405,
        "multiplier": "x18",
        "op": "MULTIPLY",
        "pivot": 514
      },
      {
        "id": 519,
        "op": "ADD",
        "parents": [
          518,
          405
        ],
        "pivot": 19
      },
      {
        "base_id": 519,
        "id": 636,
        "multiplier": "x15",
        "op": "MULTIPLY"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 433
        },
        "equation": "x15*x27 + x18 + x17 = 0",
        "id": 32,
        "named_equation": "x15*aux_27 + x18 + x17 = 0",
        "op": "INSERT",
        "pivot": 468,
        "source": "original-S1"
      },
      {
        "base_id": 32,
        "id": 509,
        "multiplier": "x15",
        "op": "MULTIPLY"
      },
      {
        "id": 510,
        "op": "ADD",
        "parents": [
          509,
          32
        ],
        "pivot": 459
      },
      {
        "id": 637,
        "op": "ADD",
        "parents": [
          636,
          510
        ]
      },
      {
        "equation": "x5*x26 + x27 = 0",
        "id": 30,
        "named_equation": "$names_specific_product*aux_26 + aux_27 = 0",
        "op": "INSERT",
        "source": "original-S1"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 433
        },
        "equation": "x5*x26 + x17 + x15 = 0",
        "id": 29,
        "named_equation": "$names_specific_product*aux_26 + x17 + x15 = 0",
        "op": "INSERT",
        "pivot": 222,
        "source": "original-S1"
      },
      {
        "id": 31,
        "op": "ADD",
        "parents": [
          30,
          29
        ],
        "pivot": 28
      },
      {
        "base_id": 31,
        "id": 499,
        "multiplier": "x15",
        "op": "MULTIPLY"
      },
      {
        "id": 500,
        "op": "ADD",
        "parents": [
          499,
          32
        ],
        "pivot": 458
      },
      {
        "id": 638,
        "op": "ADD",
        "parents": [
          637,
          500
        ],
        "pivot": 16
      },
      {
        "base_id": 638,
        "id": 718,
        "multiplier": "x12",
        "op": "MULTIPLY"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 428
        },
        "equation": "x12*x24 + x15 + x14 = 0",
        "id": 26,
        "named_equation": "x12*aux_24 + x15 + x14 = 0",
        "op": "INSERT",
        "pivot": 402,
        "source": "original-S1"
      },
      {
        "base_id": 26,
        "id": 478,
        "multiplier": "x12",
        "op": "MULTIPLY"
      },
      {
        "id": 479,
        "op": "ADD",
        "parents": [
          478,
          26
        ],
        "pivot": 393
      },
      {
        "id": 719,
        "op": "ADD",
        "parents": [
          718,
          479
        ]
      },
      {
        "equation": "x21*x23 + x24 = 0",
        "id": 24,
        "named_equation": "aux_21*aux_23 + aux_24 = 0",
        "op": "INSERT",
        "source": "original-S1"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 428
        },
        "equation": "x21*x23 + x14 + x12 = 0",
        "id": 23,
        "named_equation": "aux_21*aux_23 + x14 + x12 = 0",
        "op": "INSERT",
        "pivot": 563,
        "source": "original-S1"
      },
      {
        "id": 25,
        "op": "ADD",
        "parents": [
          24,
          23
        ],
        "pivot": 25
      },
      {
        "base_id": 25,
        "id": 464,
        "multiplier": "x12",
        "op": "MULTIPLY"
      },
      {
        "id": 465,
        "op": "ADD",
        "parents": [
          464,
          26
        ],
        "pivot": 392
      },
      {
        "id": 720,
        "op": "ADD",
        "parents": [
          719,
          465
        ]
      },
      {
        "equation": "x5 = 1",
        "id": 11,
        "named_equation": "$names_specific_product = 1",
        "op": "INSERT",
        "pin": {
          "name": "names_specific_product",
          "value": 1
        },
        "pivot": 6,
        "reads_as": "$names_specific_product holds",
        "source": "original-S2"
      },
      {
        "base_id": 11,
        "id": 341,
        "multiplier": "x1",
        "op": "MULTIPLY"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 416
        },
        "equation": "x1*x5 + x7 + x6 = 0",
        "id": 14,
        "named_equation": "$personal_recommendation*$names_specific_product + x7 + x6 = 0",
        "op": "INSERT",
        "pivot": 75,
        "source": "original-S1"
      },
      {
        "id": 342,
        "op": "ADD",
        "parents": [
          341,
          14
        ],
        "pivot": 8
      },
      {
        "base_id": 342,
        "id": 575,
        "multiplier": "x0",
        "op": "MULTIPLY"
      },
      {
        "equation": "x0*x7 + x20 = 0",
        "id": 15,
        "named_equation": "ask mortgage advice*x7 + aux_20 = 0",
        "op": "INSERT",
        "pivot": 43,
        "source": "original-S1"
      },
      {
        "id": 576,
        "op": "ADD",
        "parents": [
          575,
          15
        ]
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 416
        },
        "equation": "x6 + x5 + x1 = 0",
        "id": 1,
        "named_equation": "x6 + $names_specific_product + $personal_recommendation = 0",
        "op": "INSERT",
        "pivot": 7,
        "source": "original-S2"
      },
      {
        "base_id": 1,
        "id": 34,
        "multiplier": "x0",
        "op": "MULTIPLY",
        "pivot": 42
      },
      {
        "id": 577,
        "op": "ADD",
        "parents": [
          576,
          34
        ]
      },
      {
        "base_id": 11,
        "id": 340,
        "multiplier": "x0",
        "op": "MULTIPLY",
        "pivot": 41
      },
      {
        "id": 578,
        "op": "ADD",
        "parents": [
          577,
          340
        ]
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 417
        },
        "equation": "x9 = 1",
        "id": 2,
        "named_equation": "x9 = 1",
        "op": "INSERT",
        "pivot": 10,
        "reads_as": "x9 holds",
        "source": "original-S2"
      },
      {
        "base_id": 2,
        "id": 87,
        "multiplier": "x20",
        "op": "MULTIPLY"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 417
        },
        "equation": "x9*x20 + x10 = 0",
        "id": 17,
        "named_equation": "x9*aux_20 + x10 = 0",
        "op": "INSERT",
        "pivot": 326,
        "source": "original-S1"
      },
      {
        "id": 88,
        "op": "ADD",
        "parents": [
          87,
          17
        ],
        "pivot": 21
      },
      {
        "id": 579,
        "op": "ADD",
        "parents": [
          578,
          88
        ],
        "pivot": 11
      },
      {
        "base_id": 579,
        "id": 651,
        "multiplier": "x11",
        "op": "MULTIPLY"
      },
      {
        "equation": "x3*x21 + x22 + x21 = 0",
        "id": 19,
        "named_equation": "$suitability_assessment_done*aux_21 + aux_22 + aux_21 = 0",
        "op": "INSERT",
        "source": "original-S1"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 424
        },
        "equation": "x3*x21 + x21 + x11 + x10 = 0",
        "id": 18,
        "named_equation": "$suitability_assessment_done*aux_21 + aux_21 + x11 + x10 = 0",
        "op": "INSERT",
        "pivot": 156,
        "source": "original-S1"
      },
      {
        "id": 20,
        "op": "ADD",
        "parents": [
          19,
          18
        ],
        "pivot": 23
      },
      {
        "base_id": 20,
        "id": 428,
        "multiplier": "x10",
        "op": "MULTIPLY"
      },
      {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 424
        },
        "equation": "x10*x22 + x12 + x11 = 0",
        "id": 21,
        "named_equation": "x10*aux_22 + x12 + x11 = 0",
        "op": "INSERT",
        "pivot": 353,
        "source": "original-S1"
      },
      {
        "id": 429,
        "op": "ADD",
        "parents": [
          428,
          21
        ],
        "pivot": 342
      },
      {
        "id": 652,
        "op": "ADD",
        "parents": [
          651,
          429
        ]
      },
      {
        "base_id": 33,
        "id": 514,
        "multiplier": "x0",
        "op": "MULTIPLY"
      },
      {
        "base_id": 13,
        "id": 391,
        "multiplier": "x0",
        "op": "MULTIPLY",
        "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
      },
      {
        "base_id": 517,
        "id": 617,
        "multiplier": "x11",
        "op": "MULTIPLY",
        "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
        ]
      }
    ],
    "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": [
        "x1",
        "x3",
        "x4",
        "x5",
        "x13",
        "x16"
      ]
    },
    "question": {
      "action": "respond with permitted mortgage answer",
      "obligation_context": "has_mortgage_permission",
      "pins": [
        {
          "name": "respond with permitted mortgage answer",
          "source": "action",
          "value": 1,
          "variable": 19
        },
        {
          "name": "has_mortgage_permission",
          "source": "obligation",
          "value": 0,
          "variable": 8
        },
        {
          "name": "names_specific_product",
          "source": "conditioning",
          "value": 1,
          "variable": 5
        }
      ]
    },
    "self_contained": true,
    "status": "verified_unsat",
    "steps_to_contradiction": 61,
    "variables": {
      "x0": {
        "colang": {
          "file": "policy.co",
          "line": 133
        },
        "kind": "intent",
        "name": "ask mortgage advice"
      },
      "x1": {
        "colang": {
          "file": "policy.co",
          "flow": "investment specific product",
          "line": 209
        },
        "kind": "context",
        "name": "personal_recommendation"
      },
      "x10": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 417
        },
        "definition": "x10 + x9*x20 = 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.",
        "kind": "gate",
        "named_definition": "x10 + x9*aux_20 = 0",
        "subkind": "quadratic-split"
      },
      "x11": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 424
        },
        "definition": "x11 + x3*x21 + x10 + x21 = 0",
        "derived_from": [
          "x3",
          "x10",
          "x21"
        ],
        "kind": "gate",
        "named_definition": "x11 + $suitability_assessment_done*aux_21 + x10 + aux_21 = 0"
      },
      "x12": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 424
        },
        "definition": "x12 + x10*x22 + x11 = 0",
        "derived_from": [
          "x10",
          "x11",
          "x22"
        ],
        "kind": "gate",
        "named_definition": "x12 + x10*aux_22 + x11 = 0"
      },
      "x13": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 426
        },
        "kind": "context",
        "name": "vulnerability_identified"
      },
      "x14": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 428
        },
        "definition": "x14 + x12 + x21*x23 = 0",
        "derived_from": [
          "x12",
          "x21",
          "x23"
        ],
        "kind": "gate",
        "named_definition": "x14 + x12 + aux_21*aux_23 = 0"
      },
      "x15": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 428
        },
        "definition": "x15 + x12*x24 + x14 = 0",
        "derived_from": [
          "x12",
          "x14",
          "x24"
        ],
        "kind": "gate",
        "named_definition": "x15 + x12*aux_24 + x14 = 0"
      },
      "x16": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 430
        },
        "kind": "context",
        "name": "execution_only_positive_election"
      },
      "x17": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 433
        },
        "definition": "x17 + x5*x26 + x15 = 0",
        "derived_from": [
          "x5",
          "x15",
          "x26"
        ],
        "kind": "gate",
        "named_definition": "x17 + $names_specific_product*aux_26 + x15 = 0"
      },
      "x18": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 433
        },
        "definition": "x18 + x15*x27 + x17 = 0",
        "derived_from": [
          "x15",
          "x17",
          "x27"
        ],
        "kind": "gate",
        "named_definition": "x18 + x15*aux_27 + x17 = 0"
      },
      "x19": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 435
        },
        "definition": "x19 + x0 + x0*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.",
        "kind": "action",
        "name": "respond with permitted mortgage answer",
        "named_definition": "respond with permitted mortgage answer + ask mortgage advice + ask mortgage advice*x18 = 0",
        "subkind": "forced-materialisation"
      },
      "x20": {
        "definition": "x20 + x0*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.",
        "kind": "aux",
        "named_definition": "aux_20 + ask mortgage advice*x7 = 0",
        "subkind": "degree3-materialisation"
      },
      "x21": {
        "definition": "x21 + x0*x1 = 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.",
        "kind": "aux",
        "named_definition": "aux_21 + ask mortgage advice*$personal_recommendation = 0",
        "subkind": "degree3-materialisation"
      },
      "x22": {
        "definition": "x22 + x3*x21 + x21 = 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.",
        "kind": "aux",
        "named_definition": "aux_22 + $suitability_assessment_done*aux_21 + aux_21 = 0",
        "subkind": "degree3-materialisation"
      },
      "x23": {
        "definition": "x23 + x4*x13 + x13 = 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.",
        "kind": "aux",
        "named_definition": "aux_23 + $fair_value_assessed*$vulnerability_identified + $vulnerability_identified = 0",
        "subkind": "degree3-materialisation"
      },
      "x24": {
        "definition": "x24 + x21*x23 = 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.",
        "kind": "aux",
        "named_definition": "aux_24 + aux_21*aux_23 = 0",
        "subkind": "degree3-materialisation"
      },
      "x25": {
        "definition": "x25 + x1 + x1*x16 + x16 = 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.",
        "kind": "aux",
        "named_definition": "aux_25 + $personal_recommendation + $personal_recommendation*$execution_only_positive_election + $execution_only_positive_election = 1",
        "subkind": "degree3-materialisation"
      },
      "x26": {
        "definition": "x26 + x0*x25 = 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.",
        "kind": "aux",
        "named_definition": "aux_26 + ask mortgage advice*aux_25 = 0",
        "subkind": "degree3-materialisation"
      },
      "x27": {
        "definition": "x27 + x5*x26 = 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.",
        "kind": "aux",
        "named_definition": "aux_27 + $names_specific_product*aux_26 = 0",
        "subkind": "degree3-materialisation"
      },
      "x3": {
        "colang": {
          "file": "policy.co",
          "flow": "investment specific product",
          "line": 229
        },
        "kind": "context",
        "name": "suitability_assessment_done"
      },
      "x4": {
        "colang": {
          "file": "policy.co",
          "flow": "investment specific product",
          "line": 233
        },
        "kind": "context",
        "name": "fair_value_assessed"
      },
      "x5": {
        "colang": {
          "file": "policy.co",
          "flow": "investment generic advice",
          "line": 247
        },
        "kind": "context",
        "name": "names_specific_product"
      },
      "x6": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 416
        },
        "definition": "x6 + x1 + x5 = 0",
        "derived_from": [
          "x1",
          "x5"
        ],
        "kind": "gate",
        "named_definition": "x6 + $personal_recommendation + $names_specific_product = 0"
      },
      "x7": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 416
        },
        "definition": "x7 + x1*x5 + x6 = 0",
        "derived_from": [
          "x1",
          "x5",
          "x6"
        ],
        "kind": "gate",
        "named_definition": "x7 + $personal_recommendation*$names_specific_product + x6 = 0"
      },
      "x9": {
        "colang": {
          "file": "policy.co",
          "flow": "mortgage gate",
          "line": 417
        },
        "definition": "x9 = 1",
        "kind": "gate",
        "named_definition": "x9 = 1"
      }
    }
  },
  "certificate_detail": "full",
  "decided_by": "candidate-derivation",
  "oracle_dependent": false,
  "origin_class": "derived",
  "status": "UNSAT"
}
