Verifying systems rules using rule-directed symbolic execution | Synapse