Example01 Listing 12-1. Symbolic Differentiation Over a Simple Expression Type, pp. 319 Listing 12-2. Symbolic Differentiation with Local Simplifications, pp. 320 Example02 A Richer Language of Algebraic Expressions, pp. 321 Listing 12-3. The Core Expression Type for the Visual Symbolic Differentiation Application, pp. 322 Listing 12-4. ExprLexer.fsl: Tokenizing the Concrete Syntax for Algebraic Expressions, pp. 323 Listing 12-5. ExprParser.fsy: Parsing the Concrete Syntax for Algebraic Expressions, pp. 324 Listing 12-6. Simplifying Algebraic Expressions, pp. 326 Listing 12-7. Symbolic Differentiation for Algebraic Expressions, pp. 328 Listing 12-8. Listing 12-8. Rendering Options for the Visual Symbolic Differentiation Application, pp. 329 Listing 12-9. Listing 12-9. Visual Elements and Sizes for the Visual Symbolic Differentiation Application, pp. 330 Listing 12-10. Visual Expressions for the Visual Symbolic Differentiation Application, pp. 332 Listing 12-11. Rendering Visual Expressions, pp. 334 Listing 12-12. The User Interface Client for the Visual Symbolic Differentiation Application, pp. 335 Example03 Listing 12-13. A Minimalistic Representation of Propositional Logic, pp. 339 Listing 12-14. Listing 12-14. Evaluating Propositional Logic Formulae, pp. 341 From Circuits to Propositional Logic, pp. 343 Checking Simple Properties of Circuits, pp. 346 Listing 12-15. Implementing Binary Decision Diagrams, pp. 347 Listing 12-16. A Carry Select Adder Modeled Using Propositional Logic, pp. 351