C.  Specification Language

In this appendix, we describe the language that is used in the RISC ProgramExplorer for specifying programs. This language is based upon the logic language of the RISC ProofNavigator as explained in Section C.1. With this language whose formal syntax is described in Appendix H.2, theories can be constructed as described in Sections C.2 and C.3. With the help of theories, we may specify programs as described in Sections C.5, C.6, and C.7.

C.1 Logic Language
C.1.1 Declarations
C.1.2 Types
C.1.3 Mapping Program Types to Logical Types
C.1.4 Program Variables
C.1.5 Program States
C.1.6 State Functions
C.2 Theory Definitions
C.3 Class Specifications
C.4 Class Invariants
C.5 Method Specifications
C.6 Loop Specifications
C.7 Statement Specifications