Formal Methods For Test And Evaluation: Reasoning Over Tests, Automated Test Synthesis, And System Diagnostics