Your project probably isn't going to work, because Agda is not a Turing-complete language. For one thing, it only allows total functions, so it can't model any computation that might not halt. This means it can't even model full computations on Turing machines, for example, since Turing machines can fail to stop. So it's very unlikely that all the programs in the paper can be implemented in Agda.
In fact, it's not even possible to code all total computations in Agda, by a simple diagonal argument. Imagine the following algorithm: "Examine a text file and determine whether it's legal Agda. If it's not, output the empty string; if it is, run that Agda program on that very same text file, and add a space to the end of the output." This is a well-defined algorithm; most of the complexity is in "determine whether it's legal Agda" and "run that Agda program", and programs that do these certainly exist. But no Agda program can implement it, because any candidate would give different output when run on its own source code. Any total language is subject to a similar argument.
Weird circular-with-a-twist arguments like this are at the core of understanding the Halting Problem, so the paper you're reading will probably contain many of them.
Incidentally, the function diverges
is not definable in Haskell. Computable functions in Haskell must give more defined outputs for more defined inputs, and ⊤ is considered more defined than ⊥ (it's an actual value, as opposed to the symbol for "this is undefined").
diverges ⊥
part and saying unreachable clause. Any ideas on how to fix this? If it helps, the source I am looking at is: cs.bham.ac.uk/~mhe/papers/entcs87.pdf bottom of page 22 to page 25 (sections 2.4 and 2.5). – user2154420