Proof: Proof: Multiplication Example
This proof shows that the following program multiplies 7 by 3. More precisely, we prove that
Let's prove the following theorem:
if the following are true:
    
    - the PC at time 0 = 0
- instruction #0 is addi dst=3 src=0 imm=3
- instruction #1 is addi dst=4 src=0 imm=0
- instruction #2 is addi dst=5 src=0 imm=0
- instruction #3 is addi dst=5 src=5 imm=7
- instruction #4 is addi dst=4 src=4 imm=1
- instruction #5 is beq left=3 right=4 imm=1
- instruction #6 is jump imm=3
then value of cell 5 at time 14 = 21
The program is shown on the simulator below:
Instructions
        
    | Memory Cells | 
|---|
| Program Counter | Time | 
|---|---|
| 0 | 0 | 
  
  
LW Computer Simulator
We are given the program instructions and the PC at time 0. We use this information to make claims about the program's state at time 1. For example:
- Since the PC is 0 at time 0 and instruction #0 is an ADDI instruction, at time 1, PC is 1.
- Since the PC is 0 at time 0 and instruction #0 is addi dst=3 src=0 imm=3, at time 1, memory cell #3 becomes 3.
Then we use the claims about time 1 to prove claims about time 2, and so on. Eventually, at time 14, we prove that memory cell #5 stores 21 and the program terminates.
Proof:
  
      
      Given
      
    
    
      
  
  
| 1 | the PC at time 0 = 0 | 
|---|---|
| 2 | instruction #0 is addi dst=3 src=0 imm=3 | 
| 3 | instruction #1 is addi dst=4 src=0 imm=0 | 
| 4 | instruction #2 is addi dst=5 src=0 imm=0 | 
| 5 | instruction #3 is addi dst=5 src=5 imm=7 | 
| 6 | instruction #4 is addi dst=4 src=4 imm=1 | 
| 7 | instruction #5 is beq left=3 right=4 imm=1 | 
| 8 | instruction #6 is jump imm=3 | 
| # | Claim | Reason | 
|---|---|---|
| 1 | value of cell 3 at time 1 = 3 | if instruction #0 is addi dst=3 src=0 imm=3and the PC at time 0 = 0, then value of cell 3 at time 1 = 3 | 
| 2 | the PC at time 1 = 1 | if instruction #0 is addi dst=3 src=0 imm=3and the PC at time 0 = 0, then the PC at time 1 = 1 | 
| 3 | value of cell 4 at time 2 = 0 | if instruction #1 is addi dst=4 src=0 imm=0and the PC at time 1 = 1, then value of cell 4 at time 2 = 0 | 
| 4 | the PC at time 2 = 2 | if instruction #1 is addi dst=4 src=0 imm=0and the PC at time 1 = 1, then the PC at time 2 = 2 | 
| 5 | value of cell 3 at time 2 = 3 | if instruction #1 is addi dst=4 src=0 imm=0and the PC at time 1 = 1 and value of cell 3 at time 1 = 3, then value of cell 3 at time 2 = 3 | 
| 6 | value of cell 5 at time 3 = 0 | if instruction #2 is addi dst=5 src=0 imm=0and the PC at time 2 = 2, then value of cell 5 at time 3 = 0 | 
| 7 | the PC at time 3 = 3 | if instruction #2 is addi dst=5 src=0 imm=0and the PC at time 2 = 2, then the PC at time 3 = 3 | 
| 8 | value of cell 3 at time 3 = 3 | if instruction #2 is addi dst=5 src=0 imm=0and the PC at time 2 = 2 and value of cell 3 at time 2 = 3, then value of cell 3 at time 3 = 3 | 
| 9 | value of cell 4 at time 3 = 0 | if instruction #2 is addi dst=5 src=0 imm=0and the PC at time 2 = 2 and value of cell 4 at time 2 = 0, then value of cell 4 at time 3 = 0 | 
| 10 | value of cell 5 at time 4 = 7 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 3 = 3 and value of cell 5 at time 3 = 0, then value of cell 5 at time 4 = 7 | 
| 11 | the PC at time 4 = 4 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 3 = 3, then the PC at time 4 = 4 | 
| 12 | value of cell 3 at time 4 = 3 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 3 = 3 and value of cell 3 at time 3 = 3, then value of cell 3 at time 4 = 3 | 
| 13 | value of cell 4 at time 4 = 0 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 3 = 3 and value of cell 4 at time 3 = 0, then value of cell 4 at time 4 = 0 | 
| 14 | value of cell 4 at time 5 = 1 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 4 = 4 and value of cell 4 at time 4 = 0, then value of cell 4 at time 5 = 1 | 
| 15 | the PC at time 5 = 5 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 4 = 4, then the PC at time 5 = 5 | 
| 16 | value of cell 3 at time 5 = 3 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 4 = 4 and value of cell 3 at time 4 = 3, then value of cell 3 at time 5 = 3 | 
| 17 | value of cell 5 at time 5 = 7 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 4 = 4 and value of cell 5 at time 4 = 7, then value of cell 5 at time 5 = 7 | 
| 18 | the PC at time 6 = 6 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 5 = 5 and value of cell 3 at time 5 = 3 and value of cell 4 at time 5 = 1, then the PC at time 6 = 6 | 
| 19 | value of cell 3 at time 6 = 3 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 5 = 5 and value of cell 3 at time 5 = 3, then value of cell 3 at time 6 = 3 | 
| 20 | value of cell 4 at time 6 = 1 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 5 = 5 and value of cell 4 at time 5 = 1, then value of cell 4 at time 6 = 1 | 
| 21 | value of cell 5 at time 6 = 7 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 5 = 5 and value of cell 5 at time 5 = 7, then value of cell 5 at time 6 = 7 | 
| 22 | the PC at time 7 = 3 | if instruction #6 is jump imm=3and the PC at time 6 = 6, then the PC at time 7 = 3 | 
| 23 | value of cell 3 at time 7 = 3 | if instruction #6 is jump imm=3and the PC at time 6 = 6 and value of cell 3 at time 6 = 3, then value of cell 3 at time 7 = 3 | 
| 24 | value of cell 4 at time 7 = 1 | if instruction #6 is jump imm=3and the PC at time 6 = 6 and value of cell 4 at time 6 = 1, then value of cell 4 at time 7 = 1 | 
| 25 | value of cell 5 at time 7 = 7 | if instruction #6 is jump imm=3and the PC at time 6 = 6 and value of cell 5 at time 6 = 7, then value of cell 5 at time 7 = 7 | 
| 26 | value of cell 5 at time 8 = 14 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 7 = 3 and value of cell 5 at time 7 = 7, then value of cell 5 at time 8 = 14 | 
| 27 | the PC at time 8 = 4 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 7 = 3, then the PC at time 8 = 4 | 
| 28 | value of cell 3 at time 8 = 3 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 7 = 3 and value of cell 3 at time 7 = 3, then value of cell 3 at time 8 = 3 | 
| 29 | value of cell 4 at time 8 = 1 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 7 = 3 and value of cell 4 at time 7 = 1, then value of cell 4 at time 8 = 1 | 
| 30 | value of cell 4 at time 9 = 2 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 8 = 4 and value of cell 4 at time 8 = 1, then value of cell 4 at time 9 = 2 | 
| 31 | the PC at time 9 = 5 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 8 = 4, then the PC at time 9 = 5 | 
| 32 | value of cell 3 at time 9 = 3 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 8 = 4 and value of cell 3 at time 8 = 3, then value of cell 3 at time 9 = 3 | 
| 33 | value of cell 5 at time 9 = 14 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 8 = 4 and value of cell 5 at time 8 = 14, then value of cell 5 at time 9 = 14 | 
| 34 | the PC at time 10 = 6 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 9 = 5 and value of cell 3 at time 9 = 3 and value of cell 4 at time 9 = 2, then the PC at time 10 = 6 | 
| 35 | value of cell 3 at time 10 = 3 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 9 = 5 and value of cell 3 at time 9 = 3, then value of cell 3 at time 10 = 3 | 
| 36 | value of cell 4 at time 10 = 2 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 9 = 5 and value of cell 4 at time 9 = 2, then value of cell 4 at time 10 = 2 | 
| 37 | value of cell 5 at time 10 = 14 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 9 = 5 and value of cell 5 at time 9 = 14, then value of cell 5 at time 10 = 14 | 
| 38 | the PC at time 11 = 3 | if instruction #6 is jump imm=3and the PC at time 10 = 6, then the PC at time 11 = 3 | 
| 39 | value of cell 3 at time 11 = 3 | if instruction #6 is jump imm=3and the PC at time 10 = 6 and value of cell 3 at time 10 = 3, then value of cell 3 at time 11 = 3 | 
| 40 | value of cell 4 at time 11 = 2 | if instruction #6 is jump imm=3and the PC at time 10 = 6 and value of cell 4 at time 10 = 2, then value of cell 4 at time 11 = 2 | 
| 41 | value of cell 5 at time 11 = 14 | if instruction #6 is jump imm=3and the PC at time 10 = 6 and value of cell 5 at time 10 = 14, then value of cell 5 at time 11 = 14 | 
| 42 | value of cell 5 at time 12 = 21 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 11 = 3 and value of cell 5 at time 11 = 14, then value of cell 5 at time 12 = 21 | 
| 43 | the PC at time 12 = 4 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 11 = 3, then the PC at time 12 = 4 | 
| 44 | value of cell 3 at time 12 = 3 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 11 = 3 and value of cell 3 at time 11 = 3, then value of cell 3 at time 12 = 3 | 
| 45 | value of cell 4 at time 12 = 2 | if instruction #3 is addi dst=5 src=5 imm=7and the PC at time 11 = 3 and value of cell 4 at time 11 = 2, then value of cell 4 at time 12 = 2 | 
| 46 | value of cell 4 at time 13 = 3 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 12 = 4 and value of cell 4 at time 12 = 2, then value of cell 4 at time 13 = 3 | 
| 47 | the PC at time 13 = 5 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 12 = 4, then the PC at time 13 = 5 | 
| 48 | value of cell 3 at time 13 = 3 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 12 = 4 and value of cell 3 at time 12 = 3, then value of cell 3 at time 13 = 3 | 
| 49 | value of cell 5 at time 13 = 21 | if instruction #4 is addi dst=4 src=4 imm=1and the PC at time 12 = 4 and value of cell 5 at time 12 = 21, then value of cell 5 at time 13 = 21 | 
| 50 | the PC at time 14 = 7 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 13 = 5 and value of cell 3 at time 13 = 3 and value of cell 4 at time 13 = 3, then the PC at time 14 = 7 | 
| 51 | value of cell 3 at time 14 = 3 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 13 = 5 and value of cell 3 at time 13 = 3, then value of cell 3 at time 14 = 3 | 
| 52 | value of cell 4 at time 14 = 3 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 13 = 5 and value of cell 4 at time 13 = 3, then value of cell 4 at time 14 = 3 | 
| 53 | value of cell 5 at time 14 = 21 | if instruction #5 is beq left=3 right=4 imm=1and the PC at time 13 = 5 and value of cell 5 at time 13 = 21, then value of cell 5 at time 14 = 21 | 
Comments
Please log in to add comments