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 43 = 2
- the tab at time 43 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 43 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 44 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- the line at time 43 = 2
- the tab at time 43 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 43 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- stack at time 43 = [ ]
then stack at time 44 = [ ]
- the line at time 43 = 2
- the tab at time 43 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 43 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- Python Object Store at time 43 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 44 = [ [1, 2, 3]
, [ ] ]
- the line at time 43 = 2
- the tab at time 43 = 0
- statement at line 2, tab 0 =
for value in numbers:
- Control Map at time 43 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- Class Map at time 43 = [ ]
then Class Map at time 44 = [ ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then the expression at time 45 = __mul__(value, 4)
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then expression state at time 45 = "begin_expr"
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then the line at time 45 = 3
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then the tab at time 45 = 1
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then Value Stack at time 45 = [ ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then parent stack at time 45 = [ ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
then arguments stack at time 45 = [ ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
- Variables Map at time 44 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 45 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
- stack at time 44 = [ ]
then stack at time 45 = [ ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 44 = "not_expr"
- Python Object Store at time 44 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 45 = [ [1, 2, 3]
, [ ] ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- Control Map at time 44 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 45 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- the line at time 44 = 3
- the tab at time 44 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- Class Map at time 44 = [ ]
then Class Map at time 45 = [ ]
- expression state at time 45 = "begin_expr"
- the expression at time 45 =
__mul__(value, 4)
- Value Stack at time 45 = [ ]
then Value Stack at time 46 = [ [ ], [ ] ]
- expression state at time 45 = "begin_expr"
- the expression at time 45 =
__mul__(value, 4)
- parent stack at time 45 = [ ]
then parent stack at time 46 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 45 = "begin_expr"
- the expression at time 45 =
__mul__(value, 4)
- arguments stack at time 45 = [ ]
then arguments stack at time 46 = [ [ value, [ 4, [ ] ] ], [ ] ]
- expression state at time 45 = "begin_expr"
- the expression at time 45 =
__mul__(value, 4)
then expression state at time 46 = "iterate_args"
- expression state at time 45 = "begin_expr"
- the expression at time 45 =
__mul__(value, 4)
then the expression at time 46 = __mul__(value, 4)
- expression state at time 45 = "begin_expr"
- Variables Map at time 45 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 46 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- expression state at time 45 = "begin_expr"
- the line at time 45 = 3
then the line at time 46 = 3
- expression state at time 45 = "begin_expr"
- the tab at time 45 = 1
then the tab at time 46 = 1
- expression state at time 45 = "begin_expr"
- stack at time 45 = [ ]
then stack at time 46 = [ ]
- expression state at time 45 = "begin_expr"
- Python Object Store at time 45 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 46 = [ [1, 2, 3]
, [ ] ]
- expression state at time 45 = "begin_expr"
- Control Map at time 45 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 46 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 45 = "begin_expr"
- Class Map at time 45 = [ ]
then Class Map at time 46 = [ ]
- expression state at time 46 = "iterate_args"
- arguments stack at time 46 = [ [ value, [ 4, [ ] ] ], [ ] ]
then the expression at time 47 = value
- expression state at time 46 = "iterate_args"
- arguments stack at time 46 = [ [ value, [ 4, [ ] ] ], [ ] ]
then arguments stack at time 47 = [ [ 4, [ ] ], [ ] ]
- expression state at time 46 = "iterate_args"
- arguments stack at time 46 = [ [ value, [ 4, [ ] ] ], [ ] ]
then expression state at time 47 = "begin_expr"
- expression state at time 46 = "iterate_args"
- arguments stack at time 46 = [ [ value, [ 4, [ ] ] ], [ ] ]
- parent stack at time 46 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 47 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 46 = "iterate_args"
- Value Stack at time 46 = [ [ ], [ ] ]
then Value Stack at time 47 = [ [ ], [ ] ]
- expression state at time 46 = "iterate_args"
- the line at time 46 = 3
then the line at time 47 = 3
- expression state at time 46 = "iterate_args"
- the tab at time 46 = 1
then the tab at time 47 = 1
- expression state at time 46 = "iterate_args"
- stack at time 46 = [ ]
then stack at time 47 = [ ]
- expression state at time 46 = "iterate_args"
- Python Object Store at time 46 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 47 = [ [1, 2, 3]
, [ ] ]
- expression state at time 46 = "iterate_args"
- Control Map at time 46 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 47 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 46 = "iterate_args"
- Variables Map at time 46 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 47 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- expression state at time 46 = "iterate_args"
- Class Map at time 46 = [ ]
then Class Map at time 47 = [ ]
- expression state at time 47 = "begin_expr"
- Variables Map at time 47 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 48 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- the expression at time 47 = value
- expression state at time 47 = "begin_expr"
- value is a variable
- parent stack at time 47 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 48 = "return"
- the expression at time 47 = value
- expression state at time 47 = "begin_expr"
- value is a variable
- Value Stack at time 47 = [ [ ], [ ] ]
then Value Stack at time 48 = [ [ ], [ ] ]
- the expression at time 47 = value
- expression state at time 47 = "begin_expr"
- value is a variable
- arguments stack at time 47 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 48 = [ [ 4, [ ] ], [ ] ]
- expression state at time 47 = "begin_expr"
- the expression at time 47 = value
- value is a variable
- Variables Map at time 47 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Return Value at time 48 = 3
- expression state at time 47 = "begin_expr"
- the expression at time 47 = value
- value is a variable
- parent stack at time 47 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 48 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 47 = "begin_expr"
- the line at time 47 = 3
then the line at time 48 = 3
- expression state at time 47 = "begin_expr"
- the tab at time 47 = 1
then the tab at time 48 = 1
- expression state at time 47 = "begin_expr"
- stack at time 47 = [ ]
then stack at time 48 = [ ]
- expression state at time 47 = "begin_expr"
- Python Object Store at time 47 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 48 = [ [1, 2, 3]
, [ ] ]
- expression state at time 47 = "begin_expr"
- Control Map at time 47 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 48 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 47 = "begin_expr"
- Class Map at time 47 = [ ]
then Class Map at time 48 = [ ]
- expression state at time 48 = "return"
- Value Stack at time 48 = [ [ ], [ ] ]
- Return Value at time 48 = 3
then Value Stack at time 49 = [ [ 3, [ ] ], [ ] ]
- expression state at time 48 = "return"
- Variables Map at time 48 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 49 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- expression state at time 48 = "return"
- the line at time 48 = 3
then the line at time 49 = 3
- expression state at time 48 = "return"
- the tab at time 48 = 1
then the tab at time 49 = 1
- expression state at time 48 = "return"
- arguments stack at time 48 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 49 = [ [ 4, [ ] ], [ ] ]
- expression state at time 48 = "return"
- parent stack at time 48 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 49 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 48 = "return"
- stack at time 48 = [ ]
then stack at time 49 = [ ]
- expression state at time 48 = "return"
- Class Map at time 48 = [ ]
then Class Map at time 49 = [ ]
- expression state at time 48 = "return"
- Python Object Store at time 48 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 49 = [ [1, 2, 3]
, [ ] ]
- expression state at time 48 = "return"
- Control Map at time 48 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 49 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 49 = "iterate_args"
- arguments stack at time 49 = [ [ 4, [ ] ], [ ] ]
then the expression at time 50 = 4
- expression state at time 49 = "iterate_args"
- arguments stack at time 49 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 50 = [ [ ], [ ] ]
- expression state at time 49 = "iterate_args"
- arguments stack at time 49 = [ [ 4, [ ] ], [ ] ]
then expression state at time 50 = "begin_expr"
- expression state at time 49 = "iterate_args"
- arguments stack at time 49 = [ [ 4, [ ] ], [ ] ]
- parent stack at time 49 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 50 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 49 = "iterate_args"
- Value Stack at time 49 = [ [ 3, [ ] ], [ ] ]
then Value Stack at time 50 = [ [ 3, [ ] ], [ ] ]
- expression state at time 49 = "iterate_args"
- the line at time 49 = 3
then the line at time 50 = 3
- expression state at time 49 = "iterate_args"
- the tab at time 49 = 1
then the tab at time 50 = 1
- expression state at time 49 = "iterate_args"
- stack at time 49 = [ ]
then stack at time 50 = [ ]
- expression state at time 49 = "iterate_args"
- Python Object Store at time 49 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 50 = [ [1, 2, 3]
, [ ] ]
- expression state at time 49 = "iterate_args"
- Control Map at time 49 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 50 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 49 = "iterate_args"
- Variables Map at time 49 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 50 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- expression state at time 49 = "iterate_args"
- Class Map at time 49 = [ ]
then Class Map at time 50 = [ ]
- the expression at time 50 = 4
- expression state at time 50 = "begin_expr"
- 4 is constant
- parent stack at time 50 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 51 = "return"
- the expression at time 50 = 4
- expression state at time 50 = "begin_expr"
- 4 is constant
- Value Stack at time 50 = [ [ 3, [ ] ], [ ] ]
then Value Stack at time 51 = [ [ 3, [ ] ], [ ] ]
- the expression at time 50 = 4
- expression state at time 50 = "begin_expr"
- 4 is constant
- arguments stack at time 50 = [ [ ], [ ] ]
then arguments stack at time 51 = [ [ ], [ ] ]
- expression state at time 50 = "begin_expr"
- the expression at time 50 = 4
- 4 is constant
then Return Value at time 51 = 4
- expression state at time 50 = "begin_expr"
- the expression at time 50 = 4
- 4 is constant
- parent stack at time 50 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 51 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 50 = "begin_expr"
- the line at time 50 = 3
then the line at time 51 = 3
- expression state at time 50 = "begin_expr"
- the tab at time 50 = 1
then the tab at time 51 = 1
- expression state at time 50 = "begin_expr"
- stack at time 50 = [ ]
then stack at time 51 = [ ]
- expression state at time 50 = "begin_expr"
- Python Object Store at time 50 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 51 = [ [1, 2, 3]
, [ ] ]
- expression state at time 50 = "begin_expr"
- Control Map at time 50 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 51 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 50 = "begin_expr"
- Variables Map at time 50 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 51 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- expression state at time 50 = "begin_expr"
- Class Map at time 50 = [ ]
then Class Map at time 51 = [ ]
- expression state at time 51 = "return"
- Value Stack at time 51 = [ [ 3, [ ] ], [ ] ]
- Return Value at time 51 = 4
then Value Stack at time 52 = [ [ 4, [ 3, [ ] ] ], [ ] ]
- expression state at time 51 = "return"
- Variables Map at time 51 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 52 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]
- expression state at time 51 = "return"
- the line at time 51 = 3
then the line at time 52 = 3
- expression state at time 51 = "return"
- the tab at time 51 = 1
then the tab at time 52 = 1
- expression state at time 51 = "return"
- arguments stack at time 51 = [ [ ], [ ] ]
then arguments stack at time 52 = [ [ ], [ ] ]
- expression state at time 51 = "return"
- parent stack at time 51 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 52 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 51 = "return"
- stack at time 51 = [ ]
then stack at time 52 = [ ]
- expression state at time 51 = "return"
- Class Map at time 51 = [ ]
then Class Map at time 52 = [ ]
- expression state at time 51 = "return"
- Python Object Store at time 51 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 52 = [ [1, 2, 3]
, [ ] ]
- expression state at time 51 = "return"
- Control Map at time 51 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
then Control Map at time 52 = [ entry 0: (trio ("for", 2, [ ])), [ ] ]
- expression state at time 52 = "iterate_args"
- arguments stack at time 52 = [ [ ], [ ] ]
- parent stack at time 52 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 53 = "call_function_begin"