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.

Assign Dict (10)
if the following are true:

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


Assign Variable to Dict Result (1)
if the following are true:

then Variables Map at time (t + 1) = result of storing (Return Value at time t) at key: x in map: (Variables Map at time t)


Assign Variable to Dict Result (2)
if the following are true:

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


Assign Variable to Dict Result (3)
if the following are true:

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


Assign Variable to Dict Result (4)
if the following are true:

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


Assign Variable to Dict Result (5)
if the following are true:

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


Get Dictionary Item
if the following are true:

then Return Value at time (t + 1) = value at a in map entries


Set 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 Entry (2)
if the following are true:

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


Set Item (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 (2)
if the following are true:

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


setitem unchanged
if the following are true:

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


Set Item Return
if the following are true:

then expression state at time (t + 1) = "return"


Set Item End
if the following are true:

then expression state at time (t + 1) = "end_expr"


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)


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)


Class Definition (3)
if the following are true:

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


Class Definition (4)
if the following are true:

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


Class Definition (5)
if the following are true:

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


Class Definition (6)
if the following are true:

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


Class Definition (7)
if the following are true:

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


Class Definition (8)
if the following are true:

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


Class Definition (9)
if the following are true:

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


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

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


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

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


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

then expression state at time t = "not_expr"


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

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


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

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


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

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


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

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


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

then expression state at time (t + 1) = expression state at time t


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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


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

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


New 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 Method Line (1)
if the following are true:

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


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

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


Call 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)), [ ] ] ]


Method Call Ended (1)
if the following are true:

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


Method Call Ended (2)
if the following are true:

then expression state at time (t + 1) = "not_expr"


Method Call Ended (3)
if the following are true:

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


Method Call Ended (4)
if the following are true:

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


Method Call Ended (5)
if the following are true:

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


Method Call Ended (6)
if the following are true:

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


Method Call Ended (7)
if the following are true:

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


Method Call Ended (8)
if the following are true:

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


Assign Variable to Method Call Result (1)
if the following are true:

then Variables Map at time (t + 1) = result of storing (Return Value at time t) at key: x in map: (Variables Map at time t)


Assign Variable to Method Call Result (2)
if the following are true:

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


Assign Variable to Method Call Result (3)
if the following are true:

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


Assign Variable to Method Call Result (4)
if the following are true:

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


Assign Variable to Method Call Result (5)
if the following are true:

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


Assign Variable to Method Call Result (6)
if the following are true:

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


Assign Constructor (1)
if the following are true:

then the expression at time (t + 1) = Python constructor with name: name and arguments: args


Assign Constructor (2)
if the following are true:

then expression state at time (t + 1) = "begin_expr"


Assign Constructor (3)
if the following are true:

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


Assign Constructor (4)
if the following are true:

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


Assign Constructor (5)
if the following are true:

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


Assign Constructor (6)
if the following are true:

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


Assign Constructor (7)
if the following are true:

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


Assign Constructor (8)
if the following are true:

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


Assign Constructor (9)
if the following are true:

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


Assign Constructor (10)
if the following are true:

then parent stack at time (t + 1) = [ ]


Assign Constructor (11)
if the following are true:

then arguments stack at time (t + 1) = [ ]


Begin Constructor Elements (1)
if the following are true:

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


Begin Constructor Elements (2)
if the following are true:

then parent stack at time (t + 1) = [ Python constructor with name: class_name and arguments: args, parent stack at time t ]


Begin Constructor Elements (3)
if the following are true:

then arguments stack at time (t + 1) = [ args, arguments stack at time t ]


Begin Constructor Elements (4)
if the following are true:

then expression state at time (t + 1) = "iterate_args"


Unchanged on constructor function begin
if the following are true:

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


Call constructor method begin (1)
if the following are true:

then expression state at time (t + 1) = "call_build_args"


Call constructor method begin (2)
if the following are true:

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


Call constructor method begin (3)
if the following are true:

then Argument Values at time (t + 1) = reverse of evaluated


Call init Method Begin Set Params
if the following are true:

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


Call Build Args Constructor (1)
if the following are true:

then Function Variables Map at time (t + 1) = [ entry self: (Python reference (length of stack (Python Object Store at time t))), [ ] ]


Call Build Args Constructor (2)
if the following are true:

then Python Object Store at time (t + 1) = result of appending (Python object: [ entry "__class_name__": class_name, [ ] ]) to (Python Object Store at time t)


Call Build Args Constructor (3)
if the following are true:

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


Call Build Args Constructor (4)
if the following are true:

then Argument Values at time (t + 1) = Argument Values at time t


Call Build Args Constructor (5)
if the following are true:

then expression state at time (t + 1) = "call_build_args"


Call Build Args Constructor (6)
if the following are true:

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


Call Build Args Constructor (7)
if the following are true:

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


Call Build Args Constructor (8)
if the following are true:

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


Call Constructor Line (1)
if the following are true:

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


Call Constructor Line (2)
if the following are true:

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


Call Constructor Line (3)
if the following are true:

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


Assign Variable to Constructor Result (1)
if the following are true:

then Variables Map at time (t + 1) = result of storing (Return Value at time t) at key: x in map: (Variables Map at time t)


Assign Variable to Constructor Result (2)
if the following are true:

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


Assign Variable to Constructor Result (3)
if the following are true:

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


Assign Variable to Constructor Result (4)
if the following are true:

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


Assign Variable to Constructor Result (5)
if the following are true:

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


Assign Variable to Constructor Result (6)
if the following are true:

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


Assign Get Attribute (1)
if the following are true:

then the expression at time (t + 1) = obj.attr


Assign Get Attribute (2)
if the following are true:

then expression state at time (t + 1) = "begin_expr"


Assign Get Attribute (3)
if the following are true:

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


11 12 13