Proofs
A proof is a series of claims that lead to a conclusion. Some proofs are conditional, which means that the claims can only be made under certain conditions. Click on a statement to see the proof
- the line at time 17 = 2
- the tab at time 17 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 17 = [ entry 0: (trio ("for", 2, [ 1, [ 2, [ 3, [ ] ] ] ])), [ ] ]
then Control Map at time 18 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- the line at time 17 = 2
- the tab at time 17 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 17 = [ entry 0: (trio ("for", 2, [ 1, [ 2, [ 3, [ ] ] ] ])), [ ] ]
- stack at time 17 = [ ]
then stack at time 18 = [ ]
- the line at time 17 = 2
- the tab at time 17 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 17 = [ entry 0: (trio ("for", 2, [ 1, [ 2, [ 3, [ ] ] ] ])), [ ] ]
- Python Object Store at time 17 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 18 = [ [1, 2, 3]
, [ ] ]
- the line at time 17 = 2
- the tab at time 17 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 17 = [ entry 0: (trio ("for", 2, [ 1, [ 2, [ 3, [ ] ] ] ])), [ ] ]
- Class Map at time 17 = [ ]
then Class Map at time 18 = [ ]
x = value * 4
, then statement at line 3, tab 1 = x = __mul__(value, 4)
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then the expression at time 19 = __mul__(value, 4)
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then expression state at time 19 = "begin_expr"
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then the line at time 19 = 3
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then the tab at time 19 = 1
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then Value Stack at time 19 = [ ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then parent stack at time 19 = [ ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
then arguments stack at time 19 = [ ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
- Variables Map at time 18 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 19 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
- stack at time 18 = [ ]
then stack at time 19 = [ ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 18 = "not_expr"
- Python Object Store at time 18 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 19 = [ [1, 2, 3]
, [ ] ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- Control Map at time 18 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 19 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- the line at time 18 = 3
- the tab at time 18 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- Class Map at time 18 = [ ]
then Class Map at time 19 = [ ]
- expression state at time 19 = "begin_expr"
- the expression at time 19 =
__mul__(value, 4)
- Value Stack at time 19 = [ ]
then Value Stack at time 20 = [ [ ], [ ] ]
- expression state at time 19 = "begin_expr"
- the expression at time 19 =
__mul__(value, 4)
- parent stack at time 19 = [ ]
then parent stack at time 20 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 19 = "begin_expr"
- the expression at time 19 =
__mul__(value, 4)
- arguments stack at time 19 = [ ]
then arguments stack at time 20 = [ [ value, [ 4, [ ] ] ], [ ] ]
- expression state at time 19 = "begin_expr"
- the expression at time 19 =
__mul__(value, 4)
then expression state at time 20 = "iterate_args"
- expression state at time 19 = "begin_expr"
- the expression at time 19 =
__mul__(value, 4)
then the expression at time 20 = __mul__(value, 4)
- expression state at time 19 = "begin_expr"
- Variables Map at time 19 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 20 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- expression state at time 19 = "begin_expr"
- the line at time 19 = 3
then the line at time 20 = 3
- expression state at time 19 = "begin_expr"
- the tab at time 19 = 1
then the tab at time 20 = 1
- expression state at time 19 = "begin_expr"
- stack at time 19 = [ ]
then stack at time 20 = [ ]
- expression state at time 19 = "begin_expr"
- Python Object Store at time 19 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 20 = [ [1, 2, 3]
, [ ] ]
- expression state at time 19 = "begin_expr"
- Control Map at time 19 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 20 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- expression state at time 19 = "begin_expr"
- Class Map at time 19 = [ ]
then Class Map at time 20 = [ ]
- expression state at time 20 = "iterate_args"
- arguments stack at time 20 = [ [ value, [ 4, [ ] ] ], [ ] ]
then the expression at time 21 = value
- expression state at time 20 = "iterate_args"
- arguments stack at time 20 = [ [ value, [ 4, [ ] ] ], [ ] ]
then arguments stack at time 21 = [ [ 4, [ ] ], [ ] ]
- expression state at time 20 = "iterate_args"
- arguments stack at time 20 = [ [ value, [ 4, [ ] ] ], [ ] ]
then expression state at time 21 = "begin_expr"
- expression state at time 20 = "iterate_args"
- arguments stack at time 20 = [ [ value, [ 4, [ ] ] ], [ ] ]
- parent stack at time 20 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 21 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 20 = "iterate_args"
- Value Stack at time 20 = [ [ ], [ ] ]
then Value Stack at time 21 = [ [ ], [ ] ]
- expression state at time 20 = "iterate_args"
- the line at time 20 = 3
then the line at time 21 = 3
- expression state at time 20 = "iterate_args"
- the tab at time 20 = 1
then the tab at time 21 = 1
- expression state at time 20 = "iterate_args"
- stack at time 20 = [ ]
then stack at time 21 = [ ]
- expression state at time 20 = "iterate_args"
- Python Object Store at time 20 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 21 = [ [1, 2, 3]
, [ ] ]
- expression state at time 20 = "iterate_args"
- Control Map at time 20 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 21 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- expression state at time 20 = "iterate_args"
- Variables Map at time 20 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 21 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- expression state at time 20 = "iterate_args"
- Class Map at time 20 = [ ]
then Class Map at time 21 = [ ]
- expression state at time 21 = "begin_expr"
- Variables Map at time 21 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 22 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- the expression at time 21 = value
- expression state at time 21 = "begin_expr"
- value is a variable
- parent stack at time 21 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 22 = "return"
- the expression at time 21 = value
- expression state at time 21 = "begin_expr"
- value is a variable
- Value Stack at time 21 = [ [ ], [ ] ]
then Value Stack at time 22 = [ [ ], [ ] ]
- the expression at time 21 = value
- expression state at time 21 = "begin_expr"
- value is a variable
- arguments stack at time 21 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 22 = [ [ 4, [ ] ], [ ] ]
- expression state at time 21 = "begin_expr"
- the expression at time 21 = value
- value is a variable
- Variables Map at time 21 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Return Value at time 22 = 1
- expression state at time 21 = "begin_expr"
- the expression at time 21 = value
- value is a variable
- parent stack at time 21 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 22 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 21 = "begin_expr"
- the line at time 21 = 3
then the line at time 22 = 3
- expression state at time 21 = "begin_expr"
- the tab at time 21 = 1
then the tab at time 22 = 1
- expression state at time 21 = "begin_expr"
- stack at time 21 = [ ]
then stack at time 22 = [ ]
- expression state at time 21 = "begin_expr"
- Python Object Store at time 21 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 22 = [ [1, 2, 3]
, [ ] ]
- expression state at time 21 = "begin_expr"
- Control Map at time 21 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 22 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- expression state at time 21 = "begin_expr"
- Class Map at time 21 = [ ]
then Class Map at time 22 = [ ]
- expression state at time 22 = "return"
- Value Stack at time 22 = [ [ ], [ ] ]
- Return Value at time 22 = 1
then Value Stack at time 23 = [ [ 1, [ ] ], [ ] ]
- expression state at time 22 = "return"
- Variables Map at time 22 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 23 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- expression state at time 22 = "return"
- the line at time 22 = 3
then the line at time 23 = 3
- expression state at time 22 = "return"
- the tab at time 22 = 1
then the tab at time 23 = 1
- expression state at time 22 = "return"
- arguments stack at time 22 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 23 = [ [ 4, [ ] ], [ ] ]
- expression state at time 22 = "return"
- parent stack at time 22 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 23 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 22 = "return"
- stack at time 22 = [ ]
then stack at time 23 = [ ]
- expression state at time 22 = "return"
- Class Map at time 22 = [ ]
then Class Map at time 23 = [ ]
- expression state at time 22 = "return"
- Python Object Store at time 22 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 23 = [ [1, 2, 3]
, [ ] ]
- expression state at time 22 = "return"
- Control Map at time 22 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 23 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- expression state at time 23 = "iterate_args"
- arguments stack at time 23 = [ [ 4, [ ] ], [ ] ]
then the expression at time 24 = 4
- expression state at time 23 = "iterate_args"
- arguments stack at time 23 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 24 = [ [ ], [ ] ]
- expression state at time 23 = "iterate_args"
- arguments stack at time 23 = [ [ 4, [ ] ], [ ] ]
then expression state at time 24 = "begin_expr"
- expression state at time 23 = "iterate_args"
- arguments stack at time 23 = [ [ 4, [ ] ], [ ] ]
- parent stack at time 23 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 24 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 23 = "iterate_args"
- Value Stack at time 23 = [ [ 1, [ ] ], [ ] ]
then Value Stack at time 24 = [ [ 1, [ ] ], [ ] ]
- expression state at time 23 = "iterate_args"
- the line at time 23 = 3
then the line at time 24 = 3
- expression state at time 23 = "iterate_args"
- the tab at time 23 = 1
then the tab at time 24 = 1
- expression state at time 23 = "iterate_args"
- stack at time 23 = [ ]
then stack at time 24 = [ ]
- expression state at time 23 = "iterate_args"
- Python Object Store at time 23 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 24 = [ [1, 2, 3]
, [ ] ]
- expression state at time 23 = "iterate_args"
- Control Map at time 23 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 24 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- expression state at time 23 = "iterate_args"
- Variables Map at time 23 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 24 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- expression state at time 23 = "iterate_args"
- Class Map at time 23 = [ ]
then Class Map at time 24 = [ ]
- the expression at time 24 = 4
- expression state at time 24 = "begin_expr"
- 4 is constant
- parent stack at time 24 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 25 = "return"
- the expression at time 24 = 4
- expression state at time 24 = "begin_expr"
- 4 is constant
- Value Stack at time 24 = [ [ 1, [ ] ], [ ] ]
then Value Stack at time 25 = [ [ 1, [ ] ], [ ] ]
- the expression at time 24 = 4
- expression state at time 24 = "begin_expr"
- 4 is constant
- arguments stack at time 24 = [ [ ], [ ] ]
then arguments stack at time 25 = [ [ ], [ ] ]
- expression state at time 24 = "begin_expr"
- the expression at time 24 = 4
- 4 is constant
then Return Value at time 25 = 4
- expression state at time 24 = "begin_expr"
- the expression at time 24 = 4
- 4 is constant
- parent stack at time 24 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 25 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 24 = "begin_expr"
- the line at time 24 = 3
then the line at time 25 = 3
- expression state at time 24 = "begin_expr"
- the tab at time 24 = 1
then the tab at time 25 = 1
- expression state at time 24 = "begin_expr"
- stack at time 24 = [ ]
then stack at time 25 = [ ]
- expression state at time 24 = "begin_expr"
- Python Object Store at time 24 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 25 = [ [1, 2, 3]
, [ ] ]
- expression state at time 24 = "begin_expr"
- Control Map at time 24 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
then Control Map at time 25 = [ entry 0: (trio ("for", 2, [ 2, [ 3, [ ] ] ])), [ ] ]
- expression state at time 24 = "begin_expr"
- Variables Map at time 24 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 25 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- expression state at time 24 = "begin_expr"
- Class Map at time 24 = [ ]
then Class Map at time 25 = [ ]
- expression state at time 25 = "return"
- Value Stack at time 25 = [ [ 1, [ ] ], [ ] ]
- Return Value at time 25 = 4
then Value Stack at time 26 = [ [ 4, [ 1, [ ] ] ], [ ] ]
- expression state at time 25 = "return"
- Variables Map at time 25 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
then Variables Map at time 26 = [ entry numbers: (Python reference 0), [ entry value: 1, [ ] ] ]
- expression state at time 25 = "return"
- the line at time 25 = 3
then the line at time 26 = 3
- expression state at time 25 = "return"
- the tab at time 25 = 1
then the tab at time 26 = 1
- expression state at time 25 = "return"
- arguments stack at time 25 = [ [ ], [ ] ]
then arguments stack at time 26 = [ [ ], [ ] ]
- expression state at time 25 = "return"
- parent stack at time 25 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 26 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 25 = "return"
- stack at time 25 = [ ]
then stack at time 26 = [ ]
- expression state at time 25 = "return"
- Class Map at time 25 = [ ]
then Class Map at time 26 = [ ]
- expression state at time 25 = "return"
- Python Object Store at time 25 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 26 = [ [1, 2, 3]
, [ ] ]