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 51 = "call_returned"
- the line at time 51 = 8
then the line at time 52 = 8
- expression state at time 51 = "call_returned"
- the tab at time 51 = 0
then the tab at time 52 = 0
- expression state at time 51 = "call_returned"
- Variables Map at time 51 = [ ]
then Variables Map at time 52 = [ ]
- expression state at time 51 = "call_returned"
- Return Value at time 51 = Python reference 0
then Return Value at time 52 = Python reference 0
- expression state at time 51 = "call_returned"
- stack at time 51 = [ ]
then stack at time 52 = [ ]
- expression state at time 51 = "call_returned"
- parent stack at time 51 = [ ]
then parent stack at time 52 = [ ]
- expression state at time 51 = "call_returned"
- arguments stack at time 51 = [ ]
then arguments stack at time 52 = [ ]
- expression state at time 51 = "call_returned"
- Python Object Store at time 51 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 52 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- expression state at time 51 = "call_returned"
- Value Stack at time 51 = [ ]
then Value Stack at time 52 = [ ]
- expression state at time 51 = "call_returned"
- Control Map at time 51 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 52 = [ entry 0: (pair ("class", "Person")), [ ] ]
- expression state at time 51 = "call_returned"
- Class Map at time 51 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
then Class Map at time 52 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- expression state at time 52 = "end_expr"
- Variables Map at time 52 = [ ]
- Return Value at time 52 = Python reference 0
then Variables Map at time 53 = [ entry p: (Python reference 0), [ ] ]
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- expression state at time 52 = "end_expr"
then the line at time 53 = 9
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- expression state at time 52 = "end_expr"
then the tab at time 53 = 0
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- expression state at time 52 = "end_expr"
- Python Object Store at time 52 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 53 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- stack at time 52 = [ ]
- expression state at time 52 = "end_expr"
then stack at time 53 = [ ]
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- Control Map at time 52 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 53 = [ entry 0: (pair ("class", "Person")), [ ] ]
- the line at time 52 = 8
- the tab at time 52 = 0
- statement at line 8, tab 0 =
p = Person("John", "Smith", 25)
- Class Map at time 52 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
then Class Map at time 53 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then the expression at time 54 = p.age_in_months()
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then expression state at time 54 = "begin_expr"
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then the line at time 54 = 9
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then the tab at time 54 = 0
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then Value Stack at time 54 = [ ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then parent stack at time 54 = [ ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
then arguments stack at time 54 = [ ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
- Variables Map at time 53 = [ entry p: (Python reference 0), [ ] ]
then Variables Map at time 54 = [ entry p: (Python reference 0), [ ] ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
- stack at time 53 = [ ]
then stack at time 54 = [ ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- expression state at time 53 = "not_expr"
- Python Object Store at time 53 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 54 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- Control Map at time 53 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 54 = [ entry 0: (pair ("class", "Person")), [ ] ]
- the line at time 53 = 9
- the tab at time 53 = 0
- statement at line 9, tab 0 =
age = p.age_in_months()
- Class Map at time 53 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
then Class Map at time 54 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
- expression state at time 54 = "begin_expr"
- the expression at time 54 =
p.age_in_months()
- Value Stack at time 54 = [ ]
then Value Stack at time 55 = [ [ ], [ ] ]
- expression state at time 54 = "begin_expr"
- the expression at time 54 =
p.age_in_months()
- parent stack at time 54 = [ ]
then parent stack at time 55 = [ p.age_in_months()
, [ ] ]
- expression state at time 54 = "begin_expr"
- the expression at time 54 =
p.age_in_months()
- arguments stack at time 54 = [ ]
then arguments stack at time 55 = [ [ ], [ ] ]
- expression state at time 54 = "begin_expr"
- the expression at time 54 =
p.age_in_months()
then expression state at time 55 = "iterate_args"
- expression state at time 54 = "begin_expr"
- the expression at time 54 =
p.age_in_months()
then the expression at time 55 = p.age_in_months()
- expression state at time 54 = "begin_expr"
- Variables Map at time 54 = [ entry p: (Python reference 0), [ ] ]
then Variables Map at time 55 = [ entry p: (Python reference 0), [ ] ]
- expression state at time 54 = "begin_expr"
- the line at time 54 = 9
then the line at time 55 = 9
- expression state at time 54 = "begin_expr"
- the tab at time 54 = 0
then the tab at time 55 = 0
- expression state at time 54 = "begin_expr"
- stack at time 54 = [ ]
then stack at time 55 = [ ]
- expression state at time 54 = "begin_expr"
- Python Object Store at time 54 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 55 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- expression state at time 54 = "begin_expr"
- Control Map at time 54 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 55 = [ entry 0: (pair ("class", "Person")), [ ] ]
- expression state at time 54 = "begin_expr"
- Class Map at time 54 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
then Class Map at time 55 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
- expression state at time 55 = "iterate_args"
- arguments stack at time 55 = [ [ ], [ ] ]
- parent stack at time 55 = [
p.age_in_months()
, [ ] ]
then expression state at time 56 = "call_function_begin"
- expression state at time 55 = "iterate_args"
- arguments stack at time 55 = [ [ ], [ ] ]
- parent stack at time 55 = [
p.age_in_months()
, [ ] ]
then the expression at time 56 = p.age_in_months()
- expression state at time 55 = "iterate_args"
- arguments stack at time 55 = [ [ ], [ ] ]
- parent stack at time 55 = [
p.age_in_months()
, [ ] ]
then parent stack at time 56 = [ ]
- expression state at time 55 = "iterate_args"
- arguments stack at time 55 = [ [ ], [ ] ]
- parent stack at time 55 = [
p.age_in_months()
, [ ] ]
then arguments stack at time 56 = [ ]
- expression state at time 55 = "iterate_args"
- Value Stack at time 55 = [ [ ], [ ] ]
then Value Stack at time 56 = [ [ ], [ ] ]
- expression state at time 55 = "iterate_args"
- the line at time 55 = 9
then the line at time 56 = 9
- expression state at time 55 = "iterate_args"
- the tab at time 55 = 0
then the tab at time 56 = 0
- expression state at time 55 = "iterate_args"
- stack at time 55 = [ ]
then stack at time 56 = [ ]
- expression state at time 55 = "iterate_args"
- Python Object Store at time 55 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 56 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- expression state at time 55 = "iterate_args"
- Control Map at time 55 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 56 = [ entry 0: (pair ("class", "Person")), [ ] ]
- expression state at time 55 = "iterate_args"
- Variables Map at time 55 = [ entry p: (Python reference 0), [ ] ]
then Variables Map at time 56 = [ entry p: (Python reference 0), [ ] ]
- expression state at time 55 = "iterate_args"
- Class Map at time 55 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
then Class Map at time 56 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
- expression state at time 56 = "call_function_begin"
- the expression at time 56 =
p.age_in_months()
then the expression at time 57 = p.age_in_months()
- expression state at time 56 = "call_function_begin"
- the expression at time 56 =
p.age_in_months()
- value at p in map (Variables Map at time 56) = Python reference 0
- the element at index 0 of stack (Python Object Store at time 56) = Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ]
- map (Class Map at time 56) contains key "Person" = True
then expression state at time 57 = "call_build_args"
- expression state at time 56 = "call_function_begin"
- the expression at time 56 =
p.age_in_months()
- value at p in map (Variables Map at time 56) = Python reference 0
- the element at index 0 of stack (Python Object Store at time 56) = Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ]
- method parameters where the Class Map is (Class Map at time 56), class name is "Person", and method name is "age_in_months" = [ self, [ ] ]
then Parameters List at time 57 = [ self, [ ] ]
- expression state at time 56 = "call_function_begin"
- Value Stack at time 56 = [ [ ], [ ] ]
- the expression at time 56 =
p.age_in_months()
- value at p in map (Variables Map at time 56) = Python reference 0
- the element at index 0 of stack (Python Object Store at time 56) = Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ]
- definition of method "age_in_months" of class "Person" in (Class Map at time 56) = [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ]
then Argument Values at time 57 = [ Python reference 0, [ ] ]
- expression state at time 56 = "call_function_begin"
- the expression at time 56 =
p.age_in_months()
- value at p in map (Variables Map at time 56) = Python reference 0
- the element at index 0 of stack (Python Object Store at time 56) = Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ]
- method parameters where the Class Map is (Class Map at time 56), class name is "Person", and method name is "age_in_months" = [ self, [ ] ]
- Python Object Store at time 56 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 57 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- expression state at time 56 = "call_function_begin"
- Value Stack at time 56 = [ [ ], [ ] ]
- the expression at time 56 =
p.age_in_months()
then Value Stack at time 57 = [ ]
- expression state at time 56 = "call_function_begin"
- arguments stack at time 56 = [ ]
then arguments stack at time 57 = [ ]
- expression state at time 56 = "call_function_begin"
- parent stack at time 56 = [ ]
then parent stack at time 57 = [ ]
- expression state at time 56 = "call_function_begin"
- Control Map at time 56 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 57 = [ entry 0: (pair ("class", "Person")), [ ] ]
- expression state at time 56 = "call_function_begin"
- Variables Map at time 56 = [ entry p: (Python reference 0), [ ] ]
then Variables Map at time 57 = [ entry p: (Python reference 0), [ ] ]
- expression state at time 56 = "call_function_begin"
- the line at time 56 = 9
then the line at time 57 = 9
- expression state at time 56 = "call_function_begin"
- the tab at time 56 = 0
then the tab at time 57 = 0
- expression state at time 56 = "call_function_begin"
- stack at time 56 = [ ]
then stack at time 57 = [ ]
- expression state at time 56 = "call_function_begin"
- Class Map at time 56 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
then Class Map at time 57 = [ entry "Person": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ first_name, [ last_name, [ age, [ ] ] ] ] ], [ entry "line": 2, [ ] ] ], [ entry "age_in_months": [ entry "params": [ self, [ ] ], [ entry "line": 6, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ ] ]
- expression state at time 57 = "call_build_args"
- Function Variables Map at time 57 = [ ]
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
then Function Variables Map at time 58 = [ entry self: (Python reference 0), [ ] ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
then Parameters List at time 58 = [ ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
then Argument Values at time 58 = [ ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
then expression state at time 58 = "call_build_args"
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
- Variables Map at time 57 = [ entry p: (Python reference 0), [ ] ]
then Variables Map at time 58 = [ entry p: (Python reference 0), [ ] ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
- stack at time 57 = [ ]
then stack at time 58 = [ ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
- Python Object Store at time 57 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
then Python Object Store at time 58 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- Argument Values at time 57 = [ Python reference 0, [ ] ]
- Control Map at time 57 = [ entry 0: (pair ("class", "Person")), [ ] ]
then Control Map at time 58 = [ entry 0: (pair ("class", "Person")), [ ] ]
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- the line at time 57 = 9
then the line at time 58 = 9
- expression state at time 57 = "call_build_args"
- Parameters List at time 57 = [ self, [ ] ]
- the tab at time 57 = 0
then the tab at time 58 = 0
- expression state at time 57 = "call_build_args"
- Value Stack at time 57 = [ ]
then Value Stack at time 58 = [ ]
- expression state at time 57 = "call_build_args"
- arguments stack at time 57 = [ ]
then arguments stack at time 58 = [ ]
- expression state at time 57 = "call_build_args"
- parent stack at time 57 = [ ]
then parent stack at time 58 = [ ]
- expression state at time 57 = "call_build_args"
- the expression at time 57 =
p.age_in_months()
then the expression at time 58 = p.age_in_months()