Right here:
http://www.law.cornell.edu/cfr/text/47/27.16
Also:
When Verizon purchased C Block spectrum, they agreed to the above conditions.
In a nuthsell: if a customer brings a technically-capable unlocked phone to Verizon that can access C block spectrum, then Verizon is required to allow it to be activated for use. (Technically, Verizon violates this agreement every time they tell someone an unlocked, non-Verizon iPhone 6/Plus can't be activated.) Also, Verizon cannot SIM lock or MSL lock any of the phones they sell which access C Block spectrum.
As for Sprint, the only reason no one can take a Verizon iPhone to Sprint is because Sprint doesn't allow it. Sprint didn't buy C block spectrum and aren't bound by any open handset agreements, and their policy is, only phones from their inventory can be used on their network (and no domestic unlocks for their phones, at least
not until late February, maybe.)