This week was a bit confusing. Figuring out when functions halted was also a bit confusing and hard to understand. I think the problem this week was getting use to the fact that you can have programs that have functions within a function. I understand one to one functions because we covered it in class, onto functions in terms of sets I believe is when all values in the particular set is used up. I find it difficult to prove whether a function is one to one or onto, or both. I can determine this by visualizing the graph in my head but I still need practice proving it. The concept of diagonalization was pretty interesting, and very new at first. I never knew that the size of all real numbers, is greater than the size of the number of natural numbers. I also was surprised to find out that there is no countable list of real numbers because you can always create a new real number by using Cantors approach. Reduction was another concept I found very confusing, because I still don't understand how to reduce the halt function, and I don't get why halt functions can't be implemented. This week as a whole was just very confusing, but hopefully with review of the course notes, and the help of assignment 3 I'll be able to have a better understanding. There was one proof that Professor Heap showed us in class that apparently has never been proven for all natural numbers, the Collatz(n) proof. There was one student from our class who had an interesting approach to the problem, (vslog.weebly.com). The student suggested that we start off by showing that the proof is true for all powers of 2, which is a good first step because by doing this we will have covered many natural numbers.