If verificationMethod is not associated with the array of vmPurposes in the controllerDocument, either by reference (URL) or by value (object), an error MUST be raised and SHOULD convey an error type of INVALID_PROOF_PURPOSE_FOR_VERIFICATION_METHOD.
This should instead, I believe, say something like "If verificationMethod is not associated with a verification relationship in the controllerDocument that equals vmPurpose, either by reference ...".
I believe there's a typo in the algorithm text here: https://w3c.github.io/vc-data-integrity/#retrieve-verification-method
Step 2 says:
Which is then intended to be used in step 11:
This should instead, I believe, say something like "If
verificationMethod
is not associated with a verification relationship in thecontrollerDocument
that equalsvmPurpose
, either by reference ...".