## Theorem proving

Model Verification” Please respond to the following:

• Determine whether you would use theorem proving, the use of a catalogue of formal refinement patterns, or SAT solver technology to verify an engineering model. Support your position.
• From the e-Activity, determine whether or not you believe that a SAT solver will always be able to find a solution or verify a model. Support your position.

Classmate:

Determine whether you would use theorem proving, the use of a catalogue of formal refinement patterns, or SAT solver technology to verify an engineering model. Support your position.

Theorem proving means verifying something deductively, using inference rules that generate new assertions (Lamsweerde, 2009).  According to Lamsweerde (2009), “The verification consists of showing that the target property, taken as the candidate theorem, can be derived from the formal specification, taken as a set of axioms, by a sequence of applications of inference rules” (p. 208).  SAT solvers are tools for determining whether an assertion is satisfiable and, if so, generating a solution example of it  (Lamsweerde, 2009).

My recommendation would be to use a SAT solver.  According to Lamsweerde (2009), they are more efficient because the example solution can include a system history to further prove that the assertion is true.  For example, if the engineering model involves assertions on time-based goals, it is better to use a SAT solver as the prover.

From the e-Activity, determine whether or not you believe that a SAT solver will always be able to find a solution or verify a model. Support your position.

I think that a SAT solver will always be able to find a solution. However, it will take a very long time to prove the engineering model, in some cases.  According to Bryant (2010), when the SAT solver encounters a conflict in the solution, the solution is erased and the program starts all over again in trying to find a new solution.  On the one hand, this is still efficient because the SAT solver can remember the conflict and how it arrived at it so that it does not try that solution again (Bryant, 2010). On the other hand, this process can take a very long time to completely verify an engineering model.

## References

Bryant, R. (Producer). (2010). Using a SAT Solver to Color a Map [Online Video]. United States: YouTube. Retrieved June 3, 2018, from https://www.youtube.com/watch?v=0gt503wK7AI

Lamsweerde, A. V. (2009). Requirements Engineering: From System Goals to UML Models to Software Specifications. Chichester, West Sussex, England: John Wiley & Sons, Ltd. Retrieved June 3, 2018, from https://strayer.vitalsource.com/#/books/978EUDTE00270/