Conditional Properties

In each statement, if the test expression is true, then the conclusion expression is also assumed to be true. Conditional properties are used to prove theorems.

Begin PyDict Elements (3)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then Parameters List at time (t + 1) = None

Begin PyDict Elements (4)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then the line at time (t + 1) = the line at time t

Begin PyDict Elements (5)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then the tab at time (t + 1) = the tab at time t

Begin PyDict Elements (6)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then Variables Map at time (t + 1) = Variables Map at time t

Begin PyDict Elements (7)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then Control Map at time (t + 1) = Control Map at time t

Begin PyDict Elements (8)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then Python Object Store at time (t + 1) = Python Object Store at time t

Begin PyDict Elements (9)
if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then Context Stack at time (t + 1) = Context Stack at time t

Call Func PyDict (1)
if the following are true:

then Value Stack at time (t + 1) = [ [ Python reference (length of stack (Python Object Store at time t)), next_level ], other_levels ]


Call Func PyDict (2)
if the following are true:

then Python Object Store at time (t + 1) = result of appending (Python dictionary (reverse of values)) to (Python Object Store at time t)


Call Func PyDict Effect (1)
if Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ], then Expression Stack at time (t + 1) = [ ys, rest ]

Call Func PyDict Effect (2)
if Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ], then the line at time (t + 1) = the line at time t

Call Func PyDict Effect (3)
if Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ], then the tab at time (t + 1) = the tab at time t

Call Func PyDict Effect (4)
if Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ], then Variables Map at time (t + 1) = Variables Map at time t

Call Func PyDict Effect (5)
if Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ], then Control Map at time (t + 1) = Control Map at time t

Call Func PyDict Effect (6)
if Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ], then Context Stack at time (t + 1) = Context Stack at time t

Begin PyDict Entry Elements (1)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Expression Stack at time (t + 1) = [ [ key, [ value, [ ] ] ], [ [ entry key: value, ys ], rest ] ]

Begin PyDict Entry Elements (2)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]

Begin PyDict Entry Elements (3)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Parameters List at time (t + 1) = None

Begin PyDict Entry Elements (4)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then the line at time (t + 1) = the line at time t

Begin PyDict Entry Elements (5)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then the tab at time (t + 1) = the tab at time t

Begin PyDict Entry Elements (6)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Variables Map at time (t + 1) = Variables Map at time t

Begin PyDict Entry Elements (7)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Control Map at time (t + 1) = Control Map at time t

Begin PyDict Entry Elements (8)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Python Object Store at time (t + 1) = Python Object Store at time t

Begin PyDict Entry Elements (9)
if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Context Stack at time (t + 1) = Context Stack at time t

Call Func PyDict Entry
if the following are true:

then Value Stack at time (t + 1) = [ [ entry evaluated_key: evaluated_value, next_level ], other_levels ]


When PyDict Entry Is Evaluated (1)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then Expression Stack at time (t + 1) = [ ys, rest ]

When PyDict Entry Is Evaluated (2)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then the line at time (t + 1) = the line at time t

When PyDict Entry Is Evaluated (3)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then the tab at time (t + 1) = the tab at time t

When PyDict Entry Is Evaluated (4)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then Variables Map at time (t + 1) = Variables Map at time t

When PyDict Entry Is Evaluated (5)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then Control Map at time (t + 1) = Control Map at time t

When PyDict Entry Is Evaluated (6)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then Context Stack at time (t + 1) = Context Stack at time t

When PyDict Entry Is Evaluated (7)
if Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ], then Python Object Store at time (t + 1) = Python Object Store at time t

Assign PyDict (1)
if the following are true:

then Expression Stack at time (t + 1) = [ [ Python dictionary elements, [ ] ], [ ] ]


Assign PyDict (2)
if the following are true:

then the line at time (t + 1) = i


Assign PyDict (3)
if the following are true:

then the tab at time (t + 1) = j


Assign PyDict (4)
if the following are true:

then Variables Map at time (t + 1) = Variables Map at time t


Assign PyDict (5)
if the following are true:

then Context Stack at time (t + 1) = Context Stack at time t


Assign PyDict (6)
if the following are true:

then Value Stack at time (t + 1) = [ [ ], [ ] ]


Assign PyDict (7)
if the following are true:

then Python Object Store at time (t + 1) = Python Object Store at time t


Get PyDict Item Value
if the following are true:

then Value Stack at time (t + 1) = [ [ value at a in map entries, next_level ], other_levels ]


Set PyDict Entry (1)
if the following are true:

then Python Object Store at time (t + 1) = result of storing (Python dictionary (result of storing value at key: key in map: entries)) at index idx of stack (Python Object Store at time t)


Set PyDict Entry (2)
if the following are true:

then Value Stack at time (t + 1) = [ [ None, next_level ], other_levels ]


Set Item On PyList (1)
if the following are true:

then Python Object Store at time (t + 1) = result of storing (Python list (result of storing value at index key of stack elements)) at index idx of stack (Python Object Store at time t)


Set Item On PyList (2)
if the following are true:

then Value Stack at time (t + 1) = [ [ None, next_level ], other_levels ]


Python setitem unchanged
if the following are true:

then Python Object Store at time (t + 1) = Python Object Store at time t


When Python setitem Is Evaluated (1)
if Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ], then Expression Stack at time (t + 1) = [ ys, rest ]

When Python setitem Is Evaluated (2)
if Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ], then the line at time (t + 1) = the line at time t

When Python setitem Is Evaluated (3)
if Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ], then the tab at time (t + 1) = the tab at time t

When Python setitem Is Evaluated (4)
if Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ], then Variables Map at time (t + 1) = Variables Map at time t

When Python setitem Is Evaluated (5)
if Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ], then Control Map at time (t + 1) = Control Map at time t

When Python setitem Is Evaluated (6)
if Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ], then Context Stack at time (t + 1) = Context Stack at time t

Python Class Definition (1)
if the following are true:

then Class Map at time (t + 1) = result of storing [ entry "bases": bases, [ entry "methods": [ ], [ entry "line": i, [ ] ] ] ] at key: name in map: (Class Map at time t)


Python Class Definition (2)
if the following are true:

then Control Map at time (t + 1) = result of storing (pair ("class", name)) at key: j in map: (Control Map at time t)


Python Class Definition (3)
if the following are true:

then the line at time (t + 1) = i + 1


Python Class Definition (4)
if the following are true:

then the tab at time (t + 1) = j + 1


Python Class Definition (5)
if the following are true:

then Variables Map at time (t + 1) = Variables Map at time t


Python Class Definition (6)
if the following are true:

then Context Stack at time (t + 1) = Context Stack at time t


Python Class Definition (7)
if the following are true:

then "if" map at time (t + 1) = "if" map at time t


Python Class Definition (8)
if the following are true:

then 'while stack' at time (t + 1) = 'while stack' at time t


Python Class Definition (9)
if the following are true:

then Python Object Store at time (t + 1) = Python Object Store at time t


Python Class Definition Ended (1)
if the following are true:

then the line at time (t + 1) = the line at time t


Python Class Definition Ended (2)
if the following are true:

then the tab at time (t + 1) = j - 1


Python Class Definition Ended (3)
if the following are true:

then Expression Stack at time t = [ ]


Python Class Definition Ended (4)
if the following are true:

then Control Map at time (t + 1) = Control Map at time t


Python Class Definition Ended (5)
if the following are true:

then Variables Map at time (t + 1) = Variables Map at time t


Python Class Definition Ended (6)
if the following are true:

then Context Stack at time (t + 1) = Context Stack at time t


Python Class Definition Ended (7)
if the following are true:

then "if" map at time (t + 1) = "if" map at time t


Python Class Definition Ended (8)
if the following are true:

then Expression Stack at time (t + 1) = Expression Stack at time t


Python Class Definition Ended (9)
if the following are true:

then Python Object Store at time (t + 1) = Python Object Store at time t


Python Class Definition Ended (10)
if the following are true:

then 'while stack' at time (t + 1) = 'while stack' at time t


Python Class Definition Ended (11)
if the following are true:

then Class Map at time (t + 1) = Class Map at time t


Python Method Definition line and tab (1)
if the following are true:

then the line at time (t + 1) = i + 1


Python Method Definition line and tab (2)
if the following are true:

then the tab at time (t + 1) = j


Python Method Definition line and tab (3)
if the following are true:

then Variables Map at time (t + 1) = Variables Map at time t


Python Method Definition line and tab (4)
if the following are true:

then Context Stack at time (t + 1) = Context Stack at time t


Python Method Definition line and tab (5)
if the following are true:

then "if" map at time (t + 1) = "if" map at time t


Python Method Definition line and tab (6)
if the following are true:

then 'while stack' at time (t + 1) = 'while stack' at time t


Python Method Definition line and tab (7)
if the following are true:

then Python Object Store at time (t + 1) = Python Object Store at time t


Python Method Definition line and tab (8)
if the following are true:

then Control Map at time (t + 1) = Control Map at time t


New Python method definition
if the following are true:

then Class Map at time (t + 1) = result of storing (result of storing (result of storing [ entry "params": params, [ entry "line": i, [ ] ] ] at key: method_name in map: methods_map) at key: "methods" in map: class_map) at key: class_name in map: (Class Map at time t)


Call Python Method Begin Set Params (1)
if the following are true:

then Parameters List at time (t + 1) = params


Call Python Method Begin Set Params (2)
if the following are true:

then Value Stack at time (t + 1) = v_stack


Call Python Method Begin Set Params (3)
if the following are true:

then Function Variables Map at time (t + 1) = [ ]


Call Python Method Begin Set Params (4)
if the following are true:

then Argument Values at time (t + 1) = [ Python reference index, reverse of values ]


Call Python Method Begin Set Params (5)
if the following are true:

then Expression Stack at time (t + 1) = Expression Stack at time t


Call Python Method Begin Set Params (6)
if the following are true:

then Variables Map at time (t + 1) = Variables Map at time t


Call Python Method Begin Set Params (7)
if the following are true:

then Control Map at time (t + 1) = Control Map at time t


Call Python Method Begin Set Params (8)
if the following are true:

then Python Object Store at time (t + 1) = Python Object Store at time t


Call Python Method Begin Set Params (9)
if the following are true:

then Context Stack at time (t + 1) = Context Stack at time t


Call Python Method Begin Set Params (10)
if the following are true:

then the line at time (t + 1) = the line at time t


Call Python Method Begin Set Params (11)
if the following are true:

then the tab at time (t + 1) = the tab at time t


Call Python Method Line (1)
if the following are true:

then the line at time (t + 1) = line + 1


Call Python Method Line (2)
if the following are true:

then the tab at time (t + 1) = 2


Call Python Method Line (3)
if the following are true:

then Control Map at time (t + 1) = [ entry 0: (pair ("class", class_name)), [ entry 1: (pair ("method", method_name)), [ ] ] ]


Push Method Return Value (1)
if the following are true:

then Value Stack at time (t + 1) = [ [ r, next_level ], other_levels ]


Push Method Return Value (2)
if the following are true:

then Expression Stack at time (t + 1) = [ ys, rest ]


Push Method Return Value (3)
if the following are true:

then Return Value at time (t + 1) = [ ]


Push Method Return Value (4)
if the following are true:

then Parameters List at time (t + 1) = None


Push Method Return Value (5)
if the following are true:

then Variables Map at time (t + 1) = Variables Map at time t


Push Method Return Value (6)
if the following are true:

then Control Map at time (t + 1) = Control Map at time t


2 3 4