I have an example with 6 qubits for names and 6 for telephones. I encoded their relation like this:
(ControlledOnInt(1, SetRegisterToInt(6, _)))(rnames, rtels); (ControlledOnInt(3, SetRegisterToInt(2, _)))(rnames, rtels);
So there are only 2 registers states(tel->name) in a BD with 64 possible states.
When I ask the BD for a name from a telephone it works ok, 6 => 2 and 2 => 3 because only in these 2 values (6 and 2) the marked qbit entangled with telephones is One.
So the important part is the oracle made with ControlledOnInt, and I need to know how does it, because I have my own Grovers in c++ and I want to know the details to make it, and also to learn what gates it uses and how it multiply the matrices.