TU How Symbolic State Evolve in A Program Tree Diagram Lab Report
Question Description
Lab Description: In this lab will utilize Tree Diagram to show how symbolic state evolve in a program and then use Z3 to prove reachability.
Task 1: Tree Diagram Consider the code above, create a tree diagram that shows how the symbolic state evolves for every path through this code (similar to the one we did in class). This statement 2**z stands for 2z. Note that the last two statements in this code are executed at the end of each code path, regardless of which branches were taken. However, the value of z in these last statements depends on which path was taken before. To capture this behavior in the tree, you have these two options:
1.Create a private copy of the last two statements for each path in your diagram
2.Merge all paths back together at these last statements and model the symbolic value of z with a conditional if-then-else expression that depends on the taken path.
Task 2: Use Z3 to figure out which of the calls to foo, bar, and baz are reachable in the listing from Task1.
Have a similar assignment? "Place an order for your assignment and have exceptional work written by our team of experts, guaranteeing you A results."