Cassiel: symbolic pulse sequencing