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 34 = "begin_expr"
- stack at time 34 = [ ]
then stack at time 35 = [ ]
- expression state at time 34 = "begin_expr"
- Python Object Store at time 34 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 35 = [ [1, 2, 3]
, [ ] ]
- expression state at time 34 = "begin_expr"
- Control Map at time 34 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 35 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 34 = "begin_expr"
- Class Map at time 34 = [ ]
then Class Map at time 35 = [ ]
- expression state at time 35 = "return"
- Value Stack at time 35 = [ [ ], [ ] ]
- Return Value at time 35 = 2
then Value Stack at time 36 = [ [ 2, [ ] ], [ ] ]
- expression state at time 35 = "return"
- Variables Map at time 35 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
then Variables Map at time 36 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- expression state at time 35 = "return"
- the line at time 35 = 3
then the line at time 36 = 3
- expression state at time 35 = "return"
- the tab at time 35 = 1
then the tab at time 36 = 1
- expression state at time 35 = "return"
- arguments stack at time 35 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 36 = [ [ 4, [ ] ], [ ] ]
- expression state at time 35 = "return"
- parent stack at time 35 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 36 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 35 = "return"
- stack at time 35 = [ ]
then stack at time 36 = [ ]
- expression state at time 35 = "return"
- Class Map at time 35 = [ ]
then Class Map at time 36 = [ ]
- expression state at time 35 = "return"
- Python Object Store at time 35 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 36 = [ [1, 2, 3]
, [ ] ]
- expression state at time 35 = "return"
- Control Map at time 35 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 36 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 36 = "iterate_args"
- arguments stack at time 36 = [ [ 4, [ ] ], [ ] ]
then the expression at time 37 = 4
- expression state at time 36 = "iterate_args"
- arguments stack at time 36 = [ [ 4, [ ] ], [ ] ]
then arguments stack at time 37 = [ [ ], [ ] ]
- expression state at time 36 = "iterate_args"
- arguments stack at time 36 = [ [ 4, [ ] ], [ ] ]
then expression state at time 37 = "begin_expr"
- expression state at time 36 = "iterate_args"
- arguments stack at time 36 = [ [ 4, [ ] ], [ ] ]
- parent stack at time 36 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 37 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 36 = "iterate_args"
- Value Stack at time 36 = [ [ 2, [ ] ], [ ] ]
then Value Stack at time 37 = [ [ 2, [ ] ], [ ] ]
- expression state at time 36 = "iterate_args"
- the line at time 36 = 3
then the line at time 37 = 3
- expression state at time 36 = "iterate_args"
- the tab at time 36 = 1
then the tab at time 37 = 1
- expression state at time 36 = "iterate_args"
- stack at time 36 = [ ]
then stack at time 37 = [ ]
- expression state at time 36 = "iterate_args"
- Python Object Store at time 36 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 37 = [ [1, 2, 3]
, [ ] ]
- expression state at time 36 = "iterate_args"
- Control Map at time 36 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 37 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 36 = "iterate_args"
- Variables Map at time 36 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
then Variables Map at time 37 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- expression state at time 36 = "iterate_args"
- Class Map at time 36 = [ ]
then Class Map at time 37 = [ ]
- the expression at time 37 = 4
- expression state at time 37 = "begin_expr"
- 4 is constant
- parent stack at time 37 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 38 = "return"
- the expression at time 37 = 4
- expression state at time 37 = "begin_expr"
- 4 is constant
- Value Stack at time 37 = [ [ 2, [ ] ], [ ] ]
then Value Stack at time 38 = [ [ 2, [ ] ], [ ] ]
- the expression at time 37 = 4
- expression state at time 37 = "begin_expr"
- 4 is constant
- arguments stack at time 37 = [ [ ], [ ] ]
then arguments stack at time 38 = [ [ ], [ ] ]
- expression state at time 37 = "begin_expr"
- the expression at time 37 = 4
- 4 is constant
then Return Value at time 38 = 4
- expression state at time 37 = "begin_expr"
- the expression at time 37 = 4
- 4 is constant
- parent stack at time 37 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 38 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 37 = "begin_expr"
- the line at time 37 = 3
then the line at time 38 = 3
- expression state at time 37 = "begin_expr"
- the tab at time 37 = 1
then the tab at time 38 = 1
- expression state at time 37 = "begin_expr"
- stack at time 37 = [ ]
then stack at time 38 = [ ]
- expression state at time 37 = "begin_expr"
- Python Object Store at time 37 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 38 = [ [1, 2, 3]
, [ ] ]
- expression state at time 37 = "begin_expr"
- Control Map at time 37 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 38 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 37 = "begin_expr"
- Variables Map at time 37 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
then Variables Map at time 38 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- expression state at time 37 = "begin_expr"
- Class Map at time 37 = [ ]
then Class Map at time 38 = [ ]
- expression state at time 38 = "return"
- Value Stack at time 38 = [ [ 2, [ ] ], [ ] ]
- Return Value at time 38 = 4
then Value Stack at time 39 = [ [ 4, [ 2, [ ] ] ], [ ] ]
- expression state at time 38 = "return"
- Variables Map at time 38 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
then Variables Map at time 39 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- expression state at time 38 = "return"
- the line at time 38 = 3
then the line at time 39 = 3
- expression state at time 38 = "return"
- the tab at time 38 = 1
then the tab at time 39 = 1
- expression state at time 38 = "return"
- arguments stack at time 38 = [ [ ], [ ] ]
then arguments stack at time 39 = [ [ ], [ ] ]
- expression state at time 38 = "return"
- parent stack at time 38 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 39 = [ __mul__(value, 4)
, [ ] ]
- expression state at time 38 = "return"
- stack at time 38 = [ ]
then stack at time 39 = [ ]
- expression state at time 38 = "return"
- Class Map at time 38 = [ ]
then Class Map at time 39 = [ ]
- expression state at time 38 = "return"
- Python Object Store at time 38 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 39 = [ [1, 2, 3]
, [ ] ]
- expression state at time 38 = "return"
- Control Map at time 38 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 39 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 39 = "iterate_args"
- arguments stack at time 39 = [ [ ], [ ] ]
- parent stack at time 39 = [
__mul__(value, 4)
, [ ] ]
then expression state at time 40 = "call_function_begin"
- expression state at time 39 = "iterate_args"
- arguments stack at time 39 = [ [ ], [ ] ]
- parent stack at time 39 = [
__mul__(value, 4)
, [ ] ]
then the expression at time 40 = __mul__(value, 4)
- expression state at time 39 = "iterate_args"
- arguments stack at time 39 = [ [ ], [ ] ]
- parent stack at time 39 = [
__mul__(value, 4)
, [ ] ]
then parent stack at time 40 = [ ]
- expression state at time 39 = "iterate_args"
- arguments stack at time 39 = [ [ ], [ ] ]
- parent stack at time 39 = [
__mul__(value, 4)
, [ ] ]
then arguments stack at time 40 = [ ]
- expression state at time 39 = "iterate_args"
- Value Stack at time 39 = [ [ 4, [ 2, [ ] ] ], [ ] ]
then Value Stack at time 40 = [ [ 4, [ 2, [ ] ] ], [ ] ]
- expression state at time 39 = "iterate_args"
- the line at time 39 = 3
then the line at time 40 = 3
- expression state at time 39 = "iterate_args"
- the tab at time 39 = 1
then the tab at time 40 = 1
- expression state at time 39 = "iterate_args"
- stack at time 39 = [ ]
then stack at time 40 = [ ]
- expression state at time 39 = "iterate_args"
- Python Object Store at time 39 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 40 = [ [1, 2, 3]
, [ ] ]
- expression state at time 39 = "iterate_args"
- Control Map at time 39 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 40 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 39 = "iterate_args"
- Variables Map at time 39 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
then Variables Map at time 40 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- expression state at time 39 = "iterate_args"
- Class Map at time 39 = [ ]
then Class Map at time 40 = [ ]
- expression state at time 40 = "call_function_begin"
- the expression at time 40 =
__mul__(value, 4)
- Python Object Store at time 40 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 41 = [ [1, 2, 3]
, [ ] ]
- expression state at time 40 = "call_function_begin"
- Value Stack at time 40 = [ [ 4, [ 2, [ ] ] ], [ ] ]
- the expression at time 40 =
__mul__(value, 4)
then Return Value at time 41 = 8
- expression state at time 40 = "call_function_begin"
- parent stack at time 40 = [ ]
- the expression at time 40 =
__mul__(value, 4)
then expression state at time 41 = "end_expr"
- expression state at time 40 = "call_function_begin"
- Value Stack at time 40 = [ [ 4, [ 2, [ ] ] ], [ ] ]
- the expression at time 40 =
__mul__(value, 4)
then Value Stack at time 41 = [ ]
- expression state at time 40 = "call_function_begin"
- arguments stack at time 40 = [ ]
then arguments stack at time 41 = [ ]
- expression state at time 40 = "call_function_begin"
- parent stack at time 40 = [ ]
then parent stack at time 41 = [ ]
- expression state at time 40 = "call_function_begin"
- Control Map at time 40 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 41 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- expression state at time 40 = "call_function_begin"
- Variables Map at time 40 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
then Variables Map at time 41 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- expression state at time 40 = "call_function_begin"
- the line at time 40 = 3
then the line at time 41 = 3
- expression state at time 40 = "call_function_begin"
- the tab at time 40 = 1
then the tab at time 41 = 1
- expression state at time 40 = "call_function_begin"
- stack at time 40 = [ ]
then stack at time 41 = [ ]
- expression state at time 40 = "call_function_begin"
- Class Map at time 40 = [ ]
then Class Map at time 41 = [ ]
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 41 = "end_expr"
- Variables Map at time 41 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 4, [ ] ] ] ]
- Return Value at time 41 = 8
then Variables Map at time 42 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 8, [ ] ] ] ]
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 41 = "end_expr"
then the line at time 42 = 4
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 41 = "end_expr"
then the tab at time 42 = 1
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- expression state at time 41 = "end_expr"
- Python Object Store at time 41 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 42 = [ [1, 2, 3]
, [ ] ]
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- stack at time 41 = [ ]
- expression state at time 41 = "end_expr"
then stack at time 42 = [ ]
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- Control Map at time 41 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- the line at time 41 = 3
- the tab at time 41 = 1
- statement at line 3, tab 1 =
x = __mul__(value, 4)
- Class Map at time 41 = [ ]
then Class Map at time 42 = [ ]
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then the line at time 43 = 2
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then the tab at time 43 = 0
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- Variables Map at time 42 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 43 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 8, [ ] ] ] ]
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- stack at time 42 = [ ]
then stack at time 43 = [ ]
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- Python Object Store at time 42 = [
[1, 2, 3]
, [ ] ]
then Python Object Store at time 43 = [ [1, 2, 3]
, [ ] ]
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
then Control Map at time 43 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- the line at time 42 = 4
- the tab at time 42 = 1
- number of lines = 3
- Control Map at time 42 = [ entry 0: (trio ("for", 2, [ 3, [ ] ])), [ ] ]
- Class Map at time 42 = [ ]
then Class Map at time 43 = [ ]
- 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 the line at time 44 = 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, [ ] ])), [ ] ]
then the tab at time 44 = 1
- 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 expression state at time 44 = "not_expr"
- 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, [ ] ])), [ ] ]
- Variables Map at time 43 = [ entry numbers: (Python reference 0), [ entry value: 2, [ entry x: 8, [ ] ] ] ]
then Variables Map at time 44 = [ entry numbers: (Python reference 0), [ entry value: 3, [ entry x: 8, [ ] ] ] ]