Please use the exact code provided and show code using Alloy. Also, what is needed for fact basicProperties, fact FSMProperties, and fact additionalProperties is listed. Let us assume that the execution of an FSM starts from its initial state by taking the initial transition (a transition that starts from the initial state) and moves to the next state. It then continues by taking one of the possible transitions forever unless it reaches a state that has no outgoing transition. Please use the following specification and complete fact Trace and pred Step to simulate the execution of an FSM. For this question, you need to use library util/ordering, the documentation of which is available here: https://alloy .readthedocs.io/en/latest/techniques/dynamics.html Add fact basicProperties, which captures the following properties. (a) (2 points) A transition is an element of the outTransition of a state if and only if it starts from the state. (b) (2 points) All states of an FSM are reachable from its initial state. (c) (2 points) A state s 1 is an element of nextS of state s 2 if there is a transition from s 2 to s 1 . Add fact FSMProperties, which captures the following properties. (a) (2 points) Every FSM has one initial state. (b) (2 points) Every transition has one action, one source, and one destination. (c) (2 points) Two transitions can not have the same source and destination. (d) (2 points) No loop can be started/ended from the initial state. Add fact additionalproperties, which captures the following properties. (a) (2 points) Every FSM has some states. (b) (2 points) No two FSMs share states. (c) (2 points) Any state belongs to an FSM. (d) (2 points) All actions are assigned to transitions..