{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://quantumsoftware.tech/schemas/nm-oracle-constraint-0.1.schema.json","title":"N/M Oracle Constraint Artifact","type":"object","additionalProperties":false,"required":["format","version","constraintId","input","oracleType","predicate","source","sourceHash","playgroundHref","verification","discreteArtifact","checks","resources","backendCompatibility","compatibility","adapterBoundary","integrity"],"properties":{"format":{"const":"nm-oracle-constraint"},"version":{"const":"0.1"},"constraintId":{"type":"string","pattern":"^nmconstraint-[1-8]-[0-9a-f]{8}$"},"input":{"oneOf":[{"type":"object","additionalProperties":false,"required":["target","n","m","outputs"],"properties":{"target":{"const":"xor-affine"},"n":{"type":"integer","minimum":1,"maximum":8},"m":{"type":"integer","minimum":1,"maximum":8},"outputs":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["selectedVariables","constant"],"properties":{"selectedVariables":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"integer","minimum":0,"maximum":7}},"constant":{"enum":[0,1]}}}}}},{"type":"object","additionalProperties":false,"required":["target","n","markedState"],"properties":{"target":{"const":"phase-equality"},"n":{"type":"integer","minimum":2,"maximum":5},"markedState":{"type":"string","pattern":"^[01]{2,5}$"}}}]},"oracleType":{"type":"string","pattern":"^(?:XorOracle<[1-8],[1-8]>|PhaseOracle<[2-5]>)$"},"predicate":{"type":"string","minLength":8,"maxLength":512},"source":{"type":"string","minLength":1,"maxLength":100000},"sourceHash":{"type":"string","pattern":"^[0-9a-f]{16}$"},"playgroundHref":{"type":"string","pattern":"^/playground\\?code=[A-Za-z0-9_-]+&genericOracles=1$"},"verification":{"type":"object","additionalProperties":false,"required":["declaration","oracleKind","tier","concreteWidths","artifact","artifactHash"],"properties":{"declaration":{"const":"visual_constraint"},"oracleKind":{"enum":["xor","phase"]},"tier":{"enum":["structural","exhaustive"]},"concreteWidths":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"integer","minimum":1,"maximum":8}},"artifact":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","outputs"],"properties":{"kind":{"const":"anf"},"outputs":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"array","maxItems":9,"items":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"integer","minimum":0,"maximum":7}}}}}},{"type":"object","additionalProperties":false,"required":["kind","values"],"properties":{"kind":{"const":"sign-vector"},"values":{"type":"array","minItems":4,"maxItems":32,"items":{"enum":[-1,1]}}}}]},"artifactHash":{"type":"string","pattern":"^fnv1a32:[0-9a-f]{8}$"},"tolerance":{"type":"number","exclusiveMinimum":0,"maximum":0.001}}},"discreteArtifact":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","outputs"],"properties":{"kind":{"const":"anf"},"outputs":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"array","maxItems":9,"items":{"type":"array","maxItems":8,"uniqueItems":true,"items":{"type":"integer","minimum":0,"maximum":7}}}}}},{"type":"object","additionalProperties":false,"required":["kind","values"],"properties":{"kind":{"const":"sign-vector"},"values":{"type":"array","minItems":4,"maxItems":32,"items":{"enum":[-1,1]}}}}]},"checks":{"type":"object","additionalProperties":false,"required":["evidence","compilerAccepted","unitarity","diagonality","ancillaRestoration"],"properties":{"evidence":{"const":"nm-generic-oracle-verifier"},"compilerAccepted":{"const":true},"unitarity":{"const":"verified"},"diagonality":{"enum":["verified","not-applicable"]},"ancillaRestoration":{"const":"verified"}}},"resources":{"type":"object","additionalProperties":false,"required":["qubits","gates","depth","measurements"],"properties":{"qubits":{"type":"integer","minimum":1,"maximum":16},"gates":{"type":"integer","minimum":0,"maximum":100000},"depth":{"type":"integer","minimum":0,"maximum":100000},"measurements":{"type":"integer","minimum":0,"maximum":16}}},"backendCompatibility":{"type":"object","additionalProperties":false,"required":["browserStatevector","browserStabilizer"],"properties":{"browserStatevector":{"type":"object","additionalProperties":false,"required":["eligible","reason"],"properties":{"eligible":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":256}}},"browserStabilizer":{"type":"object","additionalProperties":false,"required":["eligible","reason"],"properties":{"eligible":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":256}}}}},"compatibility":{"type":"object","additionalProperties":false,"required":["deutschJozsa","bernsteinVazirani","grover"],"properties":{"deutschJozsa":{"enum":["constant","balanced","ineligible"]},"bernsteinVazirani":{"enum":["eligible","ineligible"]},"grover":{"enum":["eligible","ineligible"]}}},"adapterBoundary":{"type":"object","additionalProperties":false,"required":["status","direction","rfcSection","requirement"],"properties":{"status":{"enum":["deferred","not-applicable"]},"direction":{"type":"string","minLength":8,"maxLength":128},"rfcSection":{"const":"NM-RFC-0010 section 23.5"},"requirement":{"enum":["static-named-adapter-with-minus-ancilla","single-output-xor-required","one-way-only"]}}},"integrity":{"type":"object","additionalProperties":false,"required":["algorithm","recordHash"],"properties":{"algorithm":{"const":"fnv1a-64"},"recordHash":{"type":"string","pattern":"^[0-9a-f]{16}$"}}}}}