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

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

then the tab at time 31 = 2


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

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


Do Object Store At Unchanged 30
if the following are true:
  • expression state at time 30 = "iterate_args"
  • Python Object Store at time 30 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ], [ ] ]

then Python Object Store at time 31 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ], [ ] ]


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

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


Do Variables At Unchanged 30
if the following are true:
  • expression state at time 30 = "iterate_args"
  • Variables Map at time 30 = [ entry self: (Python reference 0), [ ] ]

then Variables Map at time 31 = [ entry self: (Python reference 0), [ ] ]


Do Class Defs At Unchanged 30
if the following are true:
  • expression state at time 30 = "iterate_args"
  • Class Map at time 30 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 31 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


Do Pre Extend 31 0
reverse and insert [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ] to the beginning of [ ] = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

Do Set Elements At 31 0
result of storing (Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ]) at index 0 of stack [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ], [ ] ] = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

Do Get Key Value 31 0
value at self in map [ entry self: (Python reference 0), [ ] ] = Python reference 0

Do Set Key Value 31 0
result of storing 0 at key: "y" in map: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ] = [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ]

Write Call Function Begin Set Attribute Element At 31
if Python Object Store at time 31 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ], [ ] ], then the element at index 0 of stack (Python Object Store at time 31) = Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ]

Get Key Value Variables At 31
if Variables Map at time 31 = [ entry self: (Python reference 0), [ ] ], then value at self in map (Variables Map at time 31) = Python reference 0

Write Call Function Begin Set Attribute 31
if the following are true:
  • expression state at time 31 = "call_function_begin"
  • Value Stack at time 31 = [ [ 0, [ ] ], [ ] ]
  • the expression at time 31 = self."y" = 0
  • value at self in map (Variables Map at time 31) = Python reference 0
  • Python Object Store at time 31 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ], [ ] ]
  • the element at index 0 of stack (Python Object Store at time 31) = Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ ] ] ]

then Python Object Store at time 32 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


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

then expression state at time 32 = "end_expr"


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

then Value Stack at time 32 = [ ]


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

then arguments stack at time 32 = [ ]


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

then parent stack at time 32 = [ ]


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

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


Do Variables At Unchanged 31
if the following are true:
  • expression state at time 31 = "call_function_begin"
  • Variables Map at time 31 = [ entry self: (Python reference 0), [ ] ]

then Variables Map at time 32 = [ entry self: (Python reference 0), [ ] ]


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

then the line at time 32 = 4


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

then the tab at time 32 = 2


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

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


Do Class Defs At Unchanged 31
if the following are true:
  • expression state at time 31 = "call_function_begin"
  • Class Map at time 31 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 32 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


Write Set Attribute End Line 32
if the following are true:
  • the line at time 32 = 4
  • the tab at time 32 = 2
  • statement at line 4, tab 2 = self."y" = 0
  • expression state at time 32 = "end_expr"

then the line at time 33 = 5


Write Stmt Tab Unchanged Expr32
if the following are true:
  • the line at time 32 = 4
  • the tab at time 32 = 2
  • statement at line 4, tab 2 = self."y" = 0
  • expression state at time 32 = "end_expr"

then the tab at time 33 = 2


Write Stmt Object Store At Unchanged Expr32
if the following are true:
  • the line at time 32 = 4
  • the tab at time 32 = 2
  • statement at line 4, tab 2 = self."y" = 0
  • expression state at time 32 = "end_expr"
  • Python Object Store at time 32 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 33 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


Write Stmt Control Map At Unchanged Expr32
if the following are true:
  • the line at time 32 = 4
  • the tab at time 32 = 2
  • statement at line 4, tab 2 = self."y" = 0
  • expression state at time 32 = "end_expr"
  • Control Map at time 32 = [ entry 0: (pair ("class", "Dog")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]

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


Write Stmt Variables At Unchanged 32
if the following are true:
  • the line at time 32 = 4
  • the tab at time 32 = 2
  • statement at line 4, tab 2 = self."y" = 0
  • Variables Map at time 32 = [ entry self: (Python reference 0), [ ] ]

then Variables Map at time 33 = [ entry self: (Python reference 0), [ ] ]


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

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


Write Stmt Class Defs At Unchanged 32
if the following are true:
  • the line at time 32 = 4
  • the tab at time 32 = 2
  • statement at line 4, tab 2 = self."y" = 0
  • Class Map at time 32 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 33 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


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

Do Get Key Value 33 0
value at self in map [ entry self: (Python reference 0), [ ] ] = Python reference 0

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

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

Write Constructor Return Return Value 33
if the following are true:
  • the line at time 33 = 5
  • the tab at time 33 = 2
  • statement at line 5, tab 1 = def move(self):
  • Control Map at time 33 = [ entry 0: (pair ("class", "Dog")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • Variables Map at time 33 = [ entry self: (Python reference 0), [ ] ]

then Return Value at time 34 = Python reference 0


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

then the line at time 34 = 10


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

then the tab at time 34 = 0


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

then expression state at time 34 = "call_returned"


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

then parent stack at time 34 = [ ]


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

then Variables Map at time 34 = [ ]


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

then arguments stack at time 34 = [ ]


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

then Value Stack at time 34 = [ ]


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

then stack at time 34 = [ ]


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

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


Write Block End Unchanged Object Store At 33
if the following are true:
  • the line at time 33 = 5
  • the tab at time 33 = 2
  • statement at line 5, tab 1 = def move(self):
  • Control Map at time 33 = [ entry 0: (pair ("class", "Dog")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • Python Object Store at time 33 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 34 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


Write Block End Unchanged Class Defs At 33
if the following are true:
  • the line at time 33 = 5
  • the tab at time 33 = 2
  • statement at line 5, tab 1 = def move(self):
  • Control Map at time 33 = [ entry 0: (pair ("class", "Dog")), [ entry 1: (pair ("method", "__init__")), [ ] ] ]
  • Class Map at time 33 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 34 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


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

then expression state at time 35 = "end_expr"


Do Line At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • the line at time 34 = 10

then the line at time 35 = 10


Do Tab At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • the tab at time 34 = 0

then the tab at time 35 = 0


Do Variables At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • Variables Map at time 34 = [ ]

then Variables Map at time 35 = [ ]


Do Return Value At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • Return Value at time 34 = Python reference 0

then Return Value at time 35 = Python reference 0


Do Stack At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • stack at time 34 = [ ]

then stack at time 35 = [ ]


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

then parent stack at time 35 = [ ]


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

then arguments stack at time 35 = [ ]


Do Object Store At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • Python Object Store at time 34 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 35 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


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

then Value Stack at time 35 = [ ]


Do Control Map At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • Control Map at time 34 = [ entry 0: (pair ("class", "Dog")), [ ] ]

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


Do Class Defs At Unchanged 34
if the following are true:
  • expression state at time 34 = "call_returned"
  • Class Map at time 34 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 35 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


Do Set Key Value 35 0
result of storing (Python reference 0) at key: joe in map: [ ] = [ entry joe: (Python reference 0), [ ] ]

Write Assign End Vars 35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • expression state at time 35 = "end_expr"
  • Variables Map at time 35 = [ ]
  • Return Value at time 35 = Python reference 0

then Variables Map at time 36 = [ entry joe: (Python reference 0), [ ] ]


Write Increment T And Val Line At 35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • expression state at time 35 = "end_expr"

then the line at time 36 = 11


Write Stmt Tab At Unchanged Expr35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • expression state at time 35 = "end_expr"

then the tab at time 36 = 0


Write Stmt Object Store At Unchanged Expr35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • expression state at time 35 = "end_expr"
  • Python Object Store at time 35 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 36 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


Write Assign End Stack 35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • stack at time 35 = [ ]
  • expression state at time 35 = "end_expr"

then stack at time 36 = [ ]


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

Write Stmt Control Map At Unchanged 35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • Control Map at time 35 = [ entry 0: (pair ("class", "Dog")), [ ] ]

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


Write Stmt Class Defs At Unchanged 35
if the following are true:
  • the line at time 35 = 10
  • the tab at time 35 = 0
  • statement at line 10, tab 0 = joe = Dog()
  • Class Map at time 35 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 36 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


Write Set Name Expr At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then the expression at time 37 = joe.move()


Write Set Name Expr State At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then expression state at time 37 = "begin_expr"


Write Set Name Line At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then the line at time 37 = 11


Write Set Name Tab At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then the tab at time 37 = 0


Write Set Name Value Stack At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then Value Stack at time 37 = [ ]


Write Set Name Parent Stack At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then parent stack at time 37 = [ ]


Write Set Name Arg Stack At on State 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"

then arguments stack at time 37 = [ ]


Write Stmt Object Store At Unchanged Expr36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"
  • Python Object Store at time 36 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 37 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


Write Stmt Control Map At Unchanged Expr36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"
  • Control Map at time 36 = [ entry 0: (pair ("class", "Dog")), [ ] ]

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


Write Stmt Variables At Unchanged Expr36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"
  • Variables Map at time 36 = [ entry joe: (Python reference 0), [ ] ]

then Variables Map at time 37 = [ entry joe: (Python reference 0), [ ] ]


Write Stmt Stack At Unchanged Expr36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • expression state at time 36 = "not_expr"
  • stack at time 36 = [ ]

then stack at time 37 = [ ]


Write Stmt Class Defs At Unchanged 36
if the following are true:
  • the line at time 36 = 11
  • the tab at time 36 = 0
  • statement at line 11, tab 0 = joe.move()
  • Class Map at time 36 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 37 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


Get Begin Expr Value 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • the expression at time 37 = joe.move()
  • Value Stack at time 37 = [ ]

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


Get Begin Expr Parent 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • the expression at time 37 = joe.move()
  • parent stack at time 37 = [ ]

then parent stack at time 38 = [ joe.move(), [ ] ]


Get Begin Expr Params 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • the expression at time 37 = joe.move()
  • arguments stack at time 37 = [ ]

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


Get Begin Expr Call State 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • the expression at time 37 = joe.move()

then expression state at time 38 = "iterate_args"


Do Expr At Unchanged 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • the expression at time 37 = joe.move()

then the expression at time 38 = joe.move()


Do Variables At Unchanged 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • Variables Map at time 37 = [ entry joe: (Python reference 0), [ ] ]

then Variables Map at time 38 = [ entry joe: (Python reference 0), [ ] ]


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

then the line at time 38 = 11


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

then the tab at time 38 = 0


Do Stack At Unchanged 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • stack at time 37 = [ ]

then stack at time 38 = [ ]


Do Object Store At Unchanged 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • Python Object Store at time 37 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 38 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]


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

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


Do Class Defs At Unchanged 37
if the following are true:
  • expression state at time 37 = "begin_expr"
  • Class Map at time 37 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]

then Class Map at time 38 = [ entry "Animal": [ entry "bases": [ ], [ entry "methods": [ entry "__init__": [ entry "params": [ self, [ ] ], [ entry "line": 2, [ ] ] ], [ entry "move": [ entry "params": [ self, [ ] ], [ entry "line": 5, [ ] ] ], [ ] ] ], [ entry "line": 1, [ ] ] ] ], [ entry "Dog": [ entry "bases": [ "Animal", [ ] ], [ entry "methods": [ entry "jump": [ entry "params": [ self, [ ] ], [ entry "line": 8, [ ] ] ], [ ] ], [ entry "line": 7, [ ] ] ] ], [ ] ] ]


Get Iterate End State 38
if the following are true:
  • expression state at time 38 = "iterate_args"
  • arguments stack at time 38 = [ [ ], [ ] ]
  • parent stack at time 38 = [ joe.move(), [ ] ]

then expression state at time 39 = "call_function_begin"


Get Iterate End Expr 38
if the following are true:
  • expression state at time 38 = "iterate_args"
  • arguments stack at time 38 = [ [ ], [ ] ]
  • parent stack at time 38 = [ joe.move(), [ ] ]

then the expression at time 39 = joe.move()


Get Iterate End Parent 38
if the following are true:
  • expression state at time 38 = "iterate_args"
  • arguments stack at time 38 = [ [ ], [ ] ]
  • parent stack at time 38 = [ joe.move(), [ ] ]

then parent stack at time 39 = [ ]


Get Iterate End Params 38
if the following are true:
  • expression state at time 38 = "iterate_args"
  • arguments stack at time 38 = [ [ ], [ ] ]
  • parent stack at time 38 = [ joe.move(), [ ] ]

then arguments stack at time 39 = [ ]


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

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


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

then the line at time 39 = 11


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

then the tab at time 39 = 0


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

then stack at time 39 = [ ]


Do Object Store At Unchanged 38
if the following are true:
  • expression state at time 38 = "iterate_args"
  • Python Object Store at time 38 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]

then Python Object Store at time 39 = [ Python object: [ entry "__class_name__": "Dog", [ entry "x": 0, [ entry "y": 0, [ ] ] ] ], [ ] ]



Pages: 182 183 184 ... 193