We introduce a satisfiability solver for first order formulas written in a modern object oriented programming language such as Java, which is... Show moreWe introduce a satisfiability solver for first order formulas written in a modern object oriented programming language such as Java, which is the programming language that we use to implement the solver. The variables in the first order formula can be of any data type definable with the host programming language. The first application of the solver is to detect interaction conditions among programs written in the Feature Language Extensions (FLX). Therefore, it also determines the satisfying conditions of the formula if the formula is satisfiable. FLX is a set of programming language constructs designed to allow the programmer to develop interaction features as reusable program modules [25]. Interaction detection is equivalent to automating the task of finding where to make code changes if the interacting features are implemented with conventional programming languages. The solver requires that predicates in the formula contain no functional elements. This restriction should not reduce the kind of programs that can be written in the host programming language. FLX provides language support for the solver. The language constructs allow the programmer to provide semantic guidance to the solver on the data types that they define, and the compiler to enforce the standards required of the first order formula. While the first application of the solver is to analyze programs written in FLX, it should be useful to other applications which desire such a solver to process variables used in software directly. M.S. in Computer Science, May 2012 Show less