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:

View as a tree | View dependent proofs | Try proving it

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
Proof Table
# Claim Reason
1 value of cell 3 at time 1 = 3 if instruction #0 is addi dst=3 src=0 imm=3 and 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=3 and 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=0 and 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=0 and 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=0 and 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=0 and 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=0 and 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=0 and 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=0 and 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=7 and 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=7 and 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=7 and 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=7 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=3 and 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=3 and 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=3 and 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=3 and 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=7 and 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=7 and 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=7 and 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=7 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=3 and 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=3 and 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=3 and 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=3 and 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=7 and 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=7 and 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=7 and 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=7 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and 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=1 and the PC at time 13 = 5 and value of cell 5 at time 13 = 21, then value of cell 5 at time 14 = 21
Previous Lesson

Comments

Please log in to add comments