Validation By Proof
General functions or algorithms usually arise from specific cases or problems. As we see more similar problems arise, we may begin to think about methods for dealing with them by the same means. We don’t want to create a function or algorithm to deal with each similar problem. We want to create a function that can handle small differences across each problem. We recognize that these similar problems have a common logic. It is this underlying logic that becomes our common denominator or basis for generalization. We can use this common denominator to push aside all of the small variables or logic differences and apply a reliable structure of logic that takes those small differences into account. This is how we begin deriving a general function or algorithm.
Our general function or algorithm allows us to apply the same logic to many similar problems. Thus, we are able to solve a large number of problems without having to create varied logic to accommodate each problem. As an example, we may wish to divide each number from 1 to 100 by 3. We could start by using the following specific function:
divide1_100_by_3 = 1/3 + 2/3 + 3/3 + … + 100/3
Our method is very laborious but does give us the correct outcome. If it works, why not continue using it? There are a few reasons why you should avoid this approach. First, as noted, the process is very labor intensive. We will have to implement this method every where we wish to count from 1 to 100 and divide each number by 3. Second, because of the large amount of manual labor involved, the result has a high probability of being incorrect. This probability will increase as the number of computations increase. In other words, we stand to introduce errors in our overall result (combining of all similar functions) that may not be easily found. Third, if we wish to count from 101 to 200 and divide each number by 3, we will have to devise a new method of calculation as our current method will not work. Finally, as we devise new methods of calculation for other problems, we will have a difficult time explaining these methods to our colleagues. This also has the consequence of inhibiting our successful selling of the technique to others.
We take all of these issues into account with our current method when creating a general solution. The act of deriving the general solution is topic of another discussion. I will now refer to function, algorithm, and general solution to mean conjecture. I use the word conjecture because although our method seems to hold true for all cases we have applied it, we can’t be absolutely sure it will hold. An important point to the previous statement is that our domain is very large. So large that we are not able to manually verify each case that our method may be applied. If our domain were very small, perhaps three or four cases, we could easily verify our method and have confidence that it will produce the correct outcome in every case. With a large domain, we are unsure if the correct outcome will be produced in every case but we have high confidence that it will. Thus, we call our method a conjecture because we are supposing that it will hold for all cases but give no guarantee. However, this speculation of ours is not enough to provide complete integrity. We want to supply evidence that our theory will hold for all cases within the domain. We need to be absolutely sure. But how can we possibly test all cases?
In short, we don’t. This may seem a contradiction. Our goal is to rigorously demonstrate with absolute certainty that our method holds for all cases. This is done by constructing a machine that takes our method in its general form and supplies a yes or no answer as to whether it is valid for all possible cases within our domain. By using strict rules of logic and mathematics, we will supply evidence that our method is completely verified. This machine is referred to as our proof. Once our conjecture has been verified to hold across our domain, it will morph into a theorem. We can then be certain that our theorem will produce a correct result for any case within our domain.
Categories:





_507.png)