Proof: Copy Example
In this example, we present a program that copies 3 numbers to other memory locations. Then we show that:
Let's prove the following theorem:
if the following are true:
- the PC at time 0 = 0
- instruction #0 is
addi dst=7 src=3 imm=0 - instruction #1 is
addi dst=8 src=4 imm=0 - instruction #2 is
addi dst=9 src=5 imm=0 - value of cell 3 at time 0 = 13
- value of cell 4 at time 0 = 11
- value of cell 5 at time 0 = 20
then value of cell 8 at time 3 = 11
Instructions
| Memory Cells |
|---|
| Program Counter | Time |
|---|---|
| 0 | 0 |
LW Computer Simulator
The ADDI instructions adds two numbers, but by setting the imm to 0, we can use them to copy numbers from one location to another.
Instruction #0 copies cell #3 to cell #7 by adding 0 to cell #3 and storing the result in cell #7.
Similarly, instruction #1 stores cell #4 to cell #8, and instruction #2 copies cell #5 to cell #9.
Proof:
Given
| 1 | the PC at time 0 = 0 |
|---|---|
| 2 | instruction #0 is addi dst=7 src=3 imm=0 |
| 3 | instruction #1 is addi dst=8 src=4 imm=0 |
| 4 | instruction #2 is addi dst=9 src=5 imm=0 |
| 5 | value of cell 3 at time 0 = 13 |
| 6 | value of cell 4 at time 0 = 11 |
| 7 | value of cell 5 at time 0 = 20 |
| # | Claim | Reason |
|---|---|---|
| 1 | value of cell 7 at time 1 = 13 | if instruction #0 is addi dst=7 src=3 imm=0 and the PC at time 0 = 0 and value of cell 3 at time 0 = 13, then value of cell 7 at time 1 = 13 |
| 2 | the PC at time 1 = 1 | if instruction #0 is addi dst=7 src=3 imm=0 and the PC at time 0 = 0, then the PC at time 1 = 1 |
| 3 | value of cell 3 at time 1 = 13 | if instruction #0 is addi dst=7 src=3 imm=0 and the PC at time 0 = 0 and value of cell 3 at time 0 = 13, then value of cell 3 at time 1 = 13 |
| 4 | value of cell 4 at time 1 = 11 | if instruction #0 is addi dst=7 src=3 imm=0 and the PC at time 0 = 0 and value of cell 4 at time 0 = 11, then value of cell 4 at time 1 = 11 |
| 5 | value of cell 5 at time 1 = 20 | if instruction #0 is addi dst=7 src=3 imm=0 and the PC at time 0 = 0 and value of cell 5 at time 0 = 20, then value of cell 5 at time 1 = 20 |
| 6 | value of cell 8 at time 2 = 11 | if instruction #1 is addi dst=8 src=4 imm=0 and the PC at time 1 = 1 and value of cell 4 at time 1 = 11, then value of cell 8 at time 2 = 11 |
| 7 | the PC at time 2 = 2 | if instruction #1 is addi dst=8 src=4 imm=0 and the PC at time 1 = 1, then the PC at time 2 = 2 |
| 8 | value of cell 3 at time 2 = 13 | if instruction #1 is addi dst=8 src=4 imm=0 and the PC at time 1 = 1 and value of cell 3 at time 1 = 13, then value of cell 3 at time 2 = 13 |
| 9 | value of cell 4 at time 2 = 11 | if instruction #1 is addi dst=8 src=4 imm=0 and the PC at time 1 = 1 and value of cell 4 at time 1 = 11, then value of cell 4 at time 2 = 11 |
| 10 | value of cell 5 at time 2 = 20 | if instruction #1 is addi dst=8 src=4 imm=0 and the PC at time 1 = 1 and value of cell 5 at time 1 = 20, then value of cell 5 at time 2 = 20 |
| 11 | value of cell 7 at time 2 = 13 | if instruction #1 is addi dst=8 src=4 imm=0 and the PC at time 1 = 1 and value of cell 7 at time 1 = 13, then value of cell 7 at time 2 = 13 |
| 12 | value of cell 9 at time 3 = 20 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2 and value of cell 5 at time 2 = 20, then value of cell 9 at time 3 = 20 |
| 13 | the PC at time 3 = 3 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2, then the PC at time 3 = 3 |
| 14 | value of cell 3 at time 3 = 13 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2 and value of cell 3 at time 2 = 13, then value of cell 3 at time 3 = 13 |
| 15 | value of cell 4 at time 3 = 11 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2 and value of cell 4 at time 2 = 11, then value of cell 4 at time 3 = 11 |
| 16 | value of cell 5 at time 3 = 20 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2 and value of cell 5 at time 2 = 20, then value of cell 5 at time 3 = 20 |
| 17 | value of cell 7 at time 3 = 13 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2 and value of cell 7 at time 2 = 13, then value of cell 7 at time 3 = 13 |
| 18 | value of cell 8 at time 3 = 11 | if instruction #2 is addi dst=9 src=5 imm=0 and the PC at time 2 = 2 and value of cell 8 at time 2 = 11, then value of cell 8 at time 3 = 11 |
Comments
Please log in to add comments