Formal methods are rigorous techniques and tools used to develop and analyze computational systems. They involve formally specifying system requirements and implementation, and using tools to verify the implementation satisfies the requirements. Formal methods are used to increase confidence in system correctness and find flaws earlier. While not widespread, formal methods are useful for safety-critical systems where fault costs are high, as they complement other methods and help verify properties through mathematical modeling and analysis.