The previous poster is correct. Software cannot be proven to be bug-free. This was considered axiomatic when I worked at IBM as a mainframe programmer on software that ran ATM machines, Social Security checks, etc.
You should definitely read up on the halting problem.
You should definitely read up on the halting problem.