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
- expression state at time 54 = "iterate_args"
- the tab at time 54 = 1
then the tab at time 55 = 1
- expression state at time 54 = "iterate_args"
- stack at time 54 = [ ]
then stack at time 55 = [ ]
- expression state at time 54 = "iterate_args"
- Python Object Store at time 54 = [
[4, 7]
, [ ] ]
then Python Object Store at time 55 = [ [4, 7]
, [ ] ]
- expression state at time 54 = "iterate_args"
- Control Map at time 54 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then Control Map at time 55 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- expression state at time 54 = "iterate_args"
- Variables Map at time 54 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 28, [ ] ] ] ]
then Variables Map at time 55 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 28, [ ] ] ] ]
- expression state at time 54 = "iterate_args"
- Class Map at time 54 = [ ]
then Class Map at time 55 = [ ]
- expression state at time 55 = "call_function_begin"
- the expression at time 55 =
__mul__(value, 4)
- Python Object Store at time 55 = [
[4, 7]
, [ ] ]
then Python Object Store at time 56 = [ [4, 7]
, [ ] ]
- expression state at time 55 = "call_function_begin"
- Value Stack at time 55 = [ [ 4, [ 4, [ ] ] ], [ ] ]
- the expression at time 55 =
__mul__(value, 4)
then Return Value at time 56 = 16
- expression state at time 55 = "call_function_begin"
- parent stack at time 55 = [ ]
- the expression at time 55 =
__mul__(value, 4)
then expression state at time 56 = "end_expr"
- expression state at time 55 = "call_function_begin"
- Value Stack at time 55 = [ [ 4, [ 4, [ ] ] ], [ ] ]
- the expression at time 55 =
__mul__(value, 4)
then Value Stack at time 56 = [ ]
- expression state at time 55 = "call_function_begin"
- arguments stack at time 55 = [ ]
then arguments stack at time 56 = [ ]
- expression state at time 55 = "call_function_begin"
- parent stack at time 55 = [ ]
then parent stack at time 56 = [ ]
- expression state at time 55 = "call_function_begin"
- Control Map at time 55 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then Control Map at time 56 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- expression state at time 55 = "call_function_begin"
- Variables Map at time 55 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 28, [ ] ] ] ]
then Variables Map at time 56 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 28, [ ] ] ] ]
- expression state at time 55 = "call_function_begin"
- the line at time 55 = 5
then the line at time 56 = 5
- expression state at time 55 = "call_function_begin"
- the tab at time 55 = 1
then the tab at time 56 = 1
- expression state at time 55 = "call_function_begin"
- stack at time 55 = [ ]
then stack at time 56 = [ ]
- expression state at time 55 = "call_function_begin"
- Class Map at time 55 = [ ]
then Class Map at time 56 = [ ]
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 56 = "end_expr"
- Variables Map at time 56 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 28, [ ] ] ] ]
- Return Value at time 56 = 16
then Variables Map at time 57 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 16, [ ] ] ] ]
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 56 = "end_expr"
then the line at time 57 = 6
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 56 = "end_expr"
then the tab at time 57 = 1
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 56 = "end_expr"
- Python Object Store at time 56 = [
[4, 7]
, [ ] ]
then Python Object Store at time 57 = [ [4, 7]
, [ ] ]
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- stack at time 56 = [ ]
- expression state at time 56 = "end_expr"
then stack at time 57 = [ ]
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- Control Map at time 56 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- the line at time 56 = 5
- the tab at time 56 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- Class Map at time 56 = [ ]
then Class Map at time 57 = [ ]
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then the line at time 58 = 4
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then the tab at time 58 = 0
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- Variables Map at time 57 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 58 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 16, [ ] ] ] ]
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- stack at time 57 = [ ]
then stack at time 58 = [ ]
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- Python Object Store at time 57 = [
[4, 7]
, [ ] ]
then Python Object Store at time 58 = [ [4, 7]
, [ ] ]
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- the line at time 57 = 6
- the tab at time 57 = 1
- number of lines = 5
- Control Map at time 57 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- Class Map at time 57 = [ ]
then Class Map at time 58 = [ ]
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then the line at time 59 = 5
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then the tab at time 59 = 1
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then expression state at time 59 = "not_expr"
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- Variables Map at time 58 = [ entry numbers: (Python reference 0), [ entry value: 4, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 59 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
then Control Map at time 59 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- stack at time 58 = [ ]
then stack at time 59 = [ ]
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- Python Object Store at time 58 = [
[4, 7]
, [ ] ]
then Python Object Store at time 59 = [ [4, 7]
, [ ] ]
- the line at time 58 = 4
- the tab at time 58 = 0
- statement at line 4, tab 0 =
for value in numbers:
- Control Map at time 58 = [ entry 0: (trio ("for", 4, [ 7, [ ] ])), [ ] ]
- Class Map at time 58 = [ ]
then Class Map at time 59 = [ ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then the expression at time 60 = __mul__(value, 4)
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then expression state at time 60 = "begin_expr"
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then the line at time 60 = 5
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then the tab at time 60 = 1
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then Value Stack at time 60 = [ ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then parent stack at time 60 = [ ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
then arguments stack at time 60 = [ ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
- Variables Map at time 59 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 60 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
- stack at time 59 = [ ]
then stack at time 60 = [ ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- expression state at time 59 = "not_expr"
- Python Object Store at time 59 = [
[4, 7]
, [ ] ]
then Python Object Store at time 60 = [ [4, 7]
, [ ] ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- Control Map at time 59 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
then Control Map at time 60 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
- the line at time 59 = 5
- the tab at time 59 = 1
- statement at line 5, tab 1 =
x = __mul__(value, 4)
- Class Map at time 59 = [ ]
then Class Map at time 60 = [ ]
- expression state at time 60 = "begin_expr"
- the expression at time 60 =
__mul__(value, 4)
- Value Stack at time 60 = [ ]
then Value Stack at time 61 = [ [ ], [ ] ]
- expression state at time 60 = "begin_expr"
- the expression at time 60 =
__mul__(value, 4)
- parent stack at time 60 = [ ]
then parent stack at time 61 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 60 = "begin_expr"
- the expression at time 60 =
__mul__(value, 4)
- arguments stack at time 60 = [ ]
then arguments stack at time 61 = [ [ value, [ 4, [ ] ] ], [ ] ]
- expression state at time 60 = "begin_expr"
- the expression at time 60 =
__mul__(value, 4)
then expression state at time 61 = "iterate_args"
- expression state at time 60 = "begin_expr"
- the expression at time 60 =
__mul__(value, 4)
then the expression at time 61 = __mul__(value, 4)
- expression state at time 60 = "begin_expr"
- Variables Map at time 60 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 61 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
- expression state at time 60 = "begin_expr"
- the line at time 60 = 5
then the line at time 61 = 5
- expression state at time 60 = "begin_expr"
- the tab at time 60 = 1
then the tab at time 61 = 1
- expression state at time 60 = "begin_expr"
- stack at time 60 = [ ]
then stack at time 61 = [ ]
- expression state at time 60 = "begin_expr"
- Python Object Store at time 60 = [
[4, 7]
, [ ] ]
then Python Object Store at time 61 = [ [4, 7]
, [ ] ]
- expression state at time 60 = "begin_expr"
- Control Map at time 60 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
then Control Map at time 61 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
- expression state at time 60 = "begin_expr"
- Class Map at time 60 = [ ]
then Class Map at time 61 = [ ]
- expression state at time 61 = "iterate_args"
- arguments stack at time 61 = [ [ value, [ 4, [ ] ] ], [ ] ]
then the expression at time 62 = value
- expression state at time 61 = "iterate_args"
- arguments stack at time 61 = [ [ value, [ 4, [ ] ] ], [ ] ]
then arguments stack at time 62 = [ [ 4, [ ] ], [ ] ]
- expression state at time 61 = "iterate_args"
- arguments stack at time 61 = [ [ value, [ 4, [ ] ] ], [ ] ]
then expression state at time 62 = "begin_expr"
- expression state at time 61 = "iterate_args"
- arguments stack at time 61 = [ [ value, [ 4, [ ] ] ], [ ] ]
- parent stack at time 61 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 62 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 61 = "iterate_args"
- Value Stack at time 61 = [ [ ], [ ] ]
then Value Stack at time 62 = [ [ ], [ ] ]
- expression state at time 61 = "iterate_args"
- the line at time 61 = 5
then the line at time 62 = 5
- expression state at time 61 = "iterate_args"
- the tab at time 61 = 1
then the tab at time 62 = 1
- expression state at time 61 = "iterate_args"
- stack at time 61 = [ ]
then stack at time 62 = [ ]
- expression state at time 61 = "iterate_args"
- Python Object Store at time 61 = [
[4, 7]
, [ ] ]
then Python Object Store at time 62 = [ [4, 7]
, [ ] ]
- expression state at time 61 = "iterate_args"
- Control Map at time 61 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
then Control Map at time 62 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
- expression state at time 61 = "iterate_args"
- Variables Map at time 61 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 62 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
- expression state at time 61 = "iterate_args"
- Class Map at time 61 = [ ]
then Class Map at time 62 = [ ]
- expression state at time 62 = "begin_expr"
- Variables Map at time 62 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 63 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
- the expression at time 62 = value
- expression state at time 62 = "begin_expr"
- value is a variable
- parent stack at time 62 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 63 = "return"
- the expression at time 62 = value
- expression state at time 62 = "begin_expr"
- value is a variable
- Value Stack at time 62 = [ [ ], [ ] ]
then Value Stack at time 63 = [ [ ], [ ] ]
- the expression at time 62 = value
- expression state at time 62 = "begin_expr"
- value is a variable
- arguments stack at time 62 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 63 = [ [ 4, [ ] ], [ ] ]
- expression state at time 62 = "begin_expr"
- the expression at time 62 = value
- value is a variable
- Variables Map at time 62 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
then Return Value at time 63 = 7
- expression state at time 62 = "begin_expr"
- the expression at time 62 = value
- value is a variable
- parent stack at time 62 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 63 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 62 = "begin_expr"
- the line at time 62 = 5
then the line at time 63 = 5
- expression state at time 62 = "begin_expr"
- the tab at time 62 = 1
then the tab at time 63 = 1
- expression state at time 62 = "begin_expr"
- stack at time 62 = [ ]
then stack at time 63 = [ ]
- expression state at time 62 = "begin_expr"
- Python Object Store at time 62 = [
[4, 7]
, [ ] ]
then Python Object Store at time 63 = [ [4, 7]
, [ ] ]
- expression state at time 62 = "begin_expr"
- Control Map at time 62 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
then Control Map at time 63 = [ entry 0: (trio ("for", 4, [ ])), [ ] ]
- expression state at time 62 = "begin_expr"
- Class Map at time 62 = [ ]
then Class Map at time 63 = [ ]
- expression state at time 63 = "return"
- Value Stack at time 63 = [ [ ], [ ] ]
- Return Value at time 63 = 7
then Value Stack at time 64 = [ [ 7, [ ] ], [ ] ]
- expression state at time 63 = "return"
- Variables Map at time 63 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
then Variables Map at time 64 = [ entry numbers: (Python reference 0), [ entry value: 7, [ entry x: 16, [ ] ] ] ]
- expression state at time 63 = "return"
- the line at time 63 = 5
then the line at time 64 = 5
- expression state at time 63 = "return"
- the tab at time 63 = 1
then the tab at time 64 = 1