# How can a learnable function be obfuscable?

I overheard in a lecture on cryptographic obfuscation that the learnable functions are obfuscable. But to me this seems so counter-intuitive.

Let's take a linear function (as an example of learnable function), then say I am given any obfuscated version of the function, I can always find the original function by querying an oracle having access to the original function- then how did I manage to obfuscate the original learnable function to begin with?

Let me briefly describe the (in-)formal definition of VBBO. A compiler $$C$$ that takes a program $$P$$ and outputs another program $$C(P)$$ is called VBBO if the following hold: For any efficient algorithm $$A$$ that learns anything about $$C(P)$$, there is a simulator $$S$$ that learns exactly the same thing only via oracle access to $$P$$. More formally, it holds that $$\Pr_{C,A} [A(C(P))\rightarrow 1] \approx \Pr_S[S^P ()\rightarrow 1].$$ I omitted security parameters, negligible difference, etc. This definition does not prevent learning by querying the oracle having access to the original program.