I find the following three facts individually acceptable, but together deeply unsettling: 1) P/poly can decide the unary language $\{ 1^n | M_n(n) \quad \text{halts} \}$ via advice string. 2) Church Turing Thesis: any physical machine can be simulated by a turing machine 3) No turing machine can solve $\{ n | M_n (n) \quad \text{halts} \}$ So what does this mean? There's _exists_ a family of circuit that can solve the halting problem, but we can not _compute_ it? Question: (A) Am I misunderstanding the technical definition of (1), (2), or (3) ? (B) Suggested reading that expounds on this / provides a frame of view, where this is intuitive? This question is a bit soft/philosophical, so marked as community wiki.