Solving Three Open Problems with a Halting Oracle
Haskell, 242
p n=and[rem n r&gt;0|r&lt;-[2..n-1]]
c 1=1
c n|odd n=c$3*n+1|0&lt;1=c$div n 2
s!f=putStr(s++&quot; Conjecture is &quot;)&gt;&gt;print(not$h2$all(h1.f)[4..])
main=do&quot;The Collatz&quot;!c;&quot;Goldbach's&quot;! \n-&gt;or[p$n-r|r&lt;-[2..n-2],p r];&quot;The Twin Primes&quot;! \n-&gt;or[p$r+2|r&lt;-[n..],p r]

because in Haskell variables can contain not only values, but computations (this is called laziness) I let myself make h1, h2 take a single argument and return weather or not it's evaluation will halt.
somewhat ungolfed code:
h1 = undefined
h2 = undefined

prime n=and[rem n r&gt;0|r&lt;-[2..n-1]]
collatz 1=1
collatz n
    |odd n=collatz (3*n+1)
    |0&lt;1  =collatz (div n 2)
    
s!f=do
    putStr (s++&quot; Conjecture is &quot;)
    print$not$h2$all(h1.f)[4..]
    
main=do
    &quot;The Collatz&quot;!c                                         --collatz
    &quot;Goldbach's&quot;! \n-&gt;or[prime (n-r)|r&lt;-[2..n-2],prime r]   --goldbach
    &quot;The Twin Primes&quot;! \n-&gt;or[prime (r+2)|r&lt;-[n..],prime r] --twin primes

a bit of explanation:
when all is applied to an infinite list, it will halt iff one of the elements of the list is False, due to laziness (short-circuiting, for all non-Haskell folks out there). we use this to compute the collatz conjecture and the twin primes conjecture.
! packages this trickery along with printing.
the result is True when f terminates on all the numbers 4... (this doesn't matter for the collatz conjecture or the twin primes conjecture, because we already know they are true for such small numbers).
the code for the collatz conjecture is &quot;The Collatz&quot;!c. it prints &quot;The Collatz Conjecture is &quot; and the result, which is weather c terminates on all numbers 4...
the code for the goldbach conjecture is &quot;Goldbach's&quot;! \n-&gt;or[p$n-r|r&lt;-[2..n-2],p r].
\n-&gt;or[p$n-r|r&lt;-[2..],p r,r&lt;n+1] is a function which given n, if it is a sum of two primes, returns True, but otherwise loops indefinitely. thus, if it halts for every 4.. goldbach's conjecture is true.
the code for the twin primes conjecture is &quot;The Twin Primes&quot;! \n-&gt;or[p$r+2|r&lt;-[n..],p r].
\n-&gt;or[p$r+2|r&lt;-[n..],p r] is a function which given n, if there are twin primes greater than n, returns True, but otherwise loops indefinitely. thus, if it halts for every 4.. the twin prime conjecture is true.