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

Get Begin Expr Parent 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • the expression at time 43 = self."age" = age
  • parent stack at time 43 = [ ]

then parent stack at time 44 = [ self."age" = age, [ ] ]


Get Begin Expr Params 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • the expression at time 43 = self."age" = age
  • arguments stack at time 43 = [ ]

then arguments stack at time 44 = [ [ age, [ ] ], [ ] ]


Get Begin Expr Call State 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • the expression at time 43 = self."age" = age

then expression state at time 44 = "iterate_args"


Do Expr At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • the expression at time 43 = self."age" = age

then the expression at time 44 = self."age" = age


Do Variables At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • Variables Map at time 43 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 44 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Do Line At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • the line at time 43 = 5

then the line at time 44 = 5


Do Tab At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • the tab at time 43 = 2

then the tab at time 44 = 2


Do Stack At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • stack at time 43 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 44 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Do Object Store At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • Python Object Store at time 43 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]

then Python Object Store at time 44 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]


Do Control Map At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • Control Map at time 43 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 44 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Do Class Defs At Unchanged 43
if the following are true:
  • expression state at time 43 = "begin_expr"
  • Class Map at time 43 = [ 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 44 = [ 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, [ ] ] ] ], [ ] ]


Get Iterate Expr 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • arguments stack at time 44 = [ [ age, [ ] ], [ ] ]

then the expression at time 45 = age


Get Iterate Params 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • arguments stack at time 44 = [ [ age, [ ] ], [ ] ]

then arguments stack at time 45 = [ [ ], [ ] ]


Get Iterate State 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • arguments stack at time 44 = [ [ age, [ ] ], [ ] ]

then expression state at time 45 = "begin_expr"


Get Iterate Parent 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • arguments stack at time 44 = [ [ age, [ ] ], [ ] ]
  • parent stack at time 44 = [ self."age" = age, [ ] ]

then parent stack at time 45 = [ self."age" = age, [ ] ]


Do Value Stack At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • Value Stack at time 44 = [ [ ], [ ] ]

then Value Stack at time 45 = [ [ ], [ ] ]


Do Line At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • the line at time 44 = 5

then the line at time 45 = 5


Do Tab At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • the tab at time 44 = 2

then the tab at time 45 = 2


Do Stack At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • stack at time 44 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 45 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Do Object Store At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • Python Object Store at time 44 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]

then Python Object Store at time 45 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]


Do Control Map At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • Control Map at time 44 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 45 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Do Variables At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • Variables Map at time 44 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 45 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Do Class Defs At Unchanged 44
if the following are true:
  • expression state at time 44 = "iterate_args"
  • Class Map at time 44 = [ 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 45 = [ 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, [ ] ] ] ], [ ] ]


Do Get Key Value 45 0
value at age in map [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ] = 25

Do Variables At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • Variables Map at time 45 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 46 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Get Begin Expr State Name 45
if the following are true:
  • the expression at time 45 = age
  • expression state at time 45 = "begin_expr"
  • age is a variable
  • parent stack at time 45 = [ self."age" = age, [ ] ]

then expression state at time 46 = "return"


Get Begin Expr Value Unchaged Name 45
if the following are true:
  • the expression at time 45 = age
  • expression state at time 45 = "begin_expr"
  • age is a variable
  • Value Stack at time 45 = [ [ ], [ ] ]

then Value Stack at time 46 = [ [ ], [ ] ]


Get Begin Expr Params Unchanged Name45
if the following are true:
  • the expression at time 45 = age
  • expression state at time 45 = "begin_expr"
  • age is a variable
  • arguments stack at time 45 = [ [ ], [ ] ]

then arguments stack at time 46 = [ [ ], [ ] ]


Get Begin Expr Return Name 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • the expression at time 45 = age
  • age is a variable
  • Variables Map at time 45 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Return Value at time 46 = 25


Get Begin Expr Parent Name 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • the expression at time 45 = age
  • age is a variable
  • parent stack at time 45 = [ self."age" = age, [ ] ]

then parent stack at time 46 = [ self."age" = age, [ ] ]


Do Line At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • the line at time 45 = 5

then the line at time 46 = 5


Do Tab At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • the tab at time 45 = 2

then the tab at time 46 = 2


Do Stack At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • stack at time 45 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 46 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Do Object Store At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • Python Object Store at time 45 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]

then Python Object Store at time 46 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]


Do Control Map At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • Control Map at time 45 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 46 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Do Class Defs At Unchanged 45
if the following are true:
  • expression state at time 45 = "begin_expr"
  • Class Map at time 45 = [ 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 46 = [ 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, [ ] ] ] ], [ ] ]


Get New State 46
if expression state at time 46 = "return", then expression state at time 47 = "iterate_args"

Get Return Value 46
if the following are true:
  • expression state at time 46 = "return"
  • Value Stack at time 46 = [ [ ], [ ] ]
  • Return Value at time 46 = 25

then Value Stack at time 47 = [ [ 25, [ ] ], [ ] ]


Do Variables At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • Variables Map at time 46 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 47 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Do Line At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • the line at time 46 = 5

then the line at time 47 = 5


Do Tab At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • the tab at time 46 = 2

then the tab at time 47 = 2


Do Arg Stack At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • arguments stack at time 46 = [ [ ], [ ] ]

then arguments stack at time 47 = [ [ ], [ ] ]


Do Parent Stack At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • parent stack at time 46 = [ self."age" = age, [ ] ]

then parent stack at time 47 = [ self."age" = age, [ ] ]


Do Stack At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • stack at time 46 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 47 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Do Class Defs At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • Class Map at time 46 = [ 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 47 = [ 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, [ ] ] ] ], [ ] ]


Do Object Store At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • Python Object Store at time 46 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]

then Python Object Store at time 47 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]


Do Control Map At Unchanged 46
if the following are true:
  • expression state at time 46 = "return"
  • Control Map at time 46 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 47 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Get Iterate End State 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • arguments stack at time 47 = [ [ ], [ ] ]
  • parent stack at time 47 = [ self."age" = age, [ ] ]

then expression state at time 48 = "call_function_begin"


Get Iterate End Expr 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • arguments stack at time 47 = [ [ ], [ ] ]
  • parent stack at time 47 = [ self."age" = age, [ ] ]

then the expression at time 48 = self."age" = age


Get Iterate End Parent 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • arguments stack at time 47 = [ [ ], [ ] ]
  • parent stack at time 47 = [ self."age" = age, [ ] ]

then parent stack at time 48 = [ ]


Get Iterate End Params 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • arguments stack at time 47 = [ [ ], [ ] ]
  • parent stack at time 47 = [ self."age" = age, [ ] ]

then arguments stack at time 48 = [ ]


Do Value Stack At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • Value Stack at time 47 = [ [ 25, [ ] ], [ ] ]

then Value Stack at time 48 = [ [ 25, [ ] ], [ ] ]


Do Line At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • the line at time 47 = 5

then the line at time 48 = 5


Do Tab At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • the tab at time 47 = 2

then the tab at time 48 = 2


Do Stack At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • stack at time 47 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 48 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Do Object Store At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • Python Object Store at time 47 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]

then Python Object Store at time 48 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]


Do Control Map At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • Control Map at time 47 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 48 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Do Variables At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • Variables Map at time 47 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 48 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Do Class Defs At Unchanged 47
if the following are true:
  • expression state at time 47 = "iterate_args"
  • Class Map at time 47 = [ 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 48 = [ 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, [ ] ] ] ], [ ] ]


Do Pre Extend 48 0
reverse and insert [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ] to the beginning of [ ] = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]

Do Set Elements At 48 0
result of storing (Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ]) at index 0 of stack [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ] = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]

Do Get Key Value 48 0
value at self in map [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ] = Python reference 0

Do Set Key Value 48 0
result of storing 25 at key: "age" in map: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ] = [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ]

Write Call Function Begin Set Attribute Element At 48
if Python Object Store at time 48 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ], then the element at index 0 of stack (Python Object Store at time 48) = Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ]

Get Key Value Variables At 48
if Variables Map at time 48 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ], then value at self in map (Variables Map at time 48) = Python reference 0

Write Call Function Begin Set Attribute 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • Value Stack at time 48 = [ [ 25, [ ] ], [ ] ]
  • the expression at time 48 = self."age" = age
  • value at self in map (Variables Map at time 48) = Python reference 0
  • Python Object Store at time 48 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ], [ ] ]
  • the element at index 0 of stack (Python Object Store at time 48) = Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ ] ] ] ]

then Python Object Store at time 49 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]


Write Call Function Begin Next State 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • parent stack at time 48 = [ ]
  • the expression at time 48 = self."age" = age

then expression state at time 49 = "end_expr"


Write Call Function Begin Value Stack 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • Value Stack at time 48 = [ [ 25, [ ] ], [ ] ]
  • the expression at time 48 = self."age" = age

then Value Stack at time 49 = [ ]


Do Arg Stack At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • arguments stack at time 48 = [ ]

then arguments stack at time 49 = [ ]


Do Parent Stack At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • parent stack at time 48 = [ ]

then parent stack at time 49 = [ ]


Do Control Map At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • Control Map at time 48 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 49 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Do Variables At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • Variables Map at time 48 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 49 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Do Line At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • the line at time 48 = 5

then the line at time 49 = 5


Do Tab At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • the tab at time 48 = 2

then the tab at time 49 = 2


Do Stack At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • stack at time 48 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 49 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Do Class Defs At Unchanged 48
if the following are true:
  • expression state at time 48 = "call_function_begin"
  • Class Map at time 48 = [ 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 49 = [ 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, [ ] ] ] ], [ ] ]


Write Set Attribute End Line 49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • expression state at time 49 = "end_expr"

then the line at time 50 = 6


Write Stmt Tab Unchanged Expr49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • expression state at time 49 = "end_expr"

then the tab at time 50 = 2


Write Stmt Object Store At Unchanged Expr49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • expression state at time 49 = "end_expr"
  • Python Object Store at time 49 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]

then Python Object Store at time 50 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]


Write Stmt Control Map At Unchanged Expr49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • expression state at time 49 = "end_expr"
  • Control Map at time 49 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

then Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]


Write Stmt Variables At Unchanged 49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • Variables Map at time 49 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Variables Map at time 50 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]


Write Stmt Stack At Unchanged 49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • stack at time 49 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]


Write Stmt Class Defs At Unchanged 49
if the following are true:
  • the line at time 49 = 5
  • the tab at time 49 = 2
  • statement at line 5, tab 2 = self."age" = age
  • Class Map at time 49 = [ 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 50 = [ 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, [ ] ] ] ], [ ] ]


Write End to Not Expr 49
if expression state at time 49 = "end_expr", then expression state at time 50 = "not_expr"

Do Get Key Value 50 0
value at self in map [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ] = Python reference 0

Do Get Key Value 50 1
value at 1 in map [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ] = pair ("method", "__init__")

Get Decrement Key Value Control Map At 50
if Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ], then value at (2 - 1) in map (Control Map at time 50) = pair ("method", "__init__")

Constructor Return Value Property Example
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • Variables Map at time 50 = [ entry self: (Python reference 0), [ entry first_name: "John", [ entry last_name: "Smith", [ entry age: 25, [ ] ] ] ] ]

then Return Value at time 51 = Python reference 0


Restore Line After Method Call Property Example
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then the line at time 51 = 8


Restore Tab After Method Call Property Example
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then the tab at time 51 = 0


Write Constructor Return Expr State At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then expression state at time 51 = "call_returned"


Write Constructor Return Parent Stack At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then parent stack at time 51 = [ ]


Restore Variables After Method Call Property Example
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then Variables Map at time 51 = [ ]


Write Constructor Return Arg Stack At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then arguments stack at time 51 = [ ]


Write Constructor Return Value Stack At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then Value Stack at time 51 = [ ]


Write Constructor Return Stack At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then stack at time 51 = [ ]


Write Constructor Return Control Map At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • stack at time 50 = [ program context with variables: [ ] and expression state: (expression state with parent stack: [ ] arguments: [ ] values: [ ] line: 8 tab: 0) and control map: [ entry 0: (pair ("class", "Person")), [ ] ], [ ] ]

then Control Map at time 51 = [ entry 0: (pair ("class", "Person")), [ ] ]


Write Block End Unchanged Object Store At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • Python Object Store at time 50 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]

then Python Object Store at time 51 = [ Python object: [ entry "__class_name__": "Person", [ entry "first_name": "John", [ entry "last_name": "Smith", [ entry "age": 25, [ ] ] ] ] ], [ ] ]


Write Block End Unchanged Class Defs At 50
if the following are true:
  • the line at time 50 = 6
  • the tab at time 50 = 2
  • statement at line 6, tab 1 = def age_in_months(self):
  • Control Map at time 50 = [ entry 0: (pair ("class", "Person")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • Class Map at time 50 = [ 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 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, [ ] ] ] ], [ ] ]


Write Call Returned State 51
if the following are true:
  • expression state at time 51 = "call_returned"
  • parent stack at time 51 = [ ]

then expression state at time 52 = "end_expr"



Pages: 174 175 176 ... 193