Supervisory Control And Failure Diagnosis Of Discrete Event Systems: A Temporal Logic Approach