@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Name:  EHDM (Enhanced Hierarchical Development Methodology)

Keywords:  Specification/Verification Environment, Hierarchical
  Development Methodology, Parameterized Modules, Higher-order Logic,
  subtyping, Arithmetic Decision Procedures, Hoare Logic, Multi-Level
  Security

Description: 
  Semantics: Classical Higher-Order Logic with predicate subtypes;
    Hoare Logic.  Axioms may be introduced freely; definitions (which
    may be recursive) provide conservative extension; hierarchical
    specifications related by theory interpretation.

  Deductive machinery: Typechecking resolves name references and
    ensures type-consistency of the specification; typechecking can
    generate proof obligations; For proof checking, user supplies
    relevant lemmas and definitions as premises for the
    theorem.  The resulting implication is Skolemized for manual and
    heuristic  instantiation.  Powerful ground decision procedures  are
    then applied for propositional logic and linear arithmetic 
    equalities/inequalities.   The IPC is an Emacs-based tool for
    incremental, interactive proof development.   Hoare Sentence Prover
    is used for checking proofs of imperative programs (which can be
    automatically translated to Ada).  Mappings specified between
    specifications generate proof obligations required for theory
    interpretation; same mechanism allows demonstration of
    consistency of axiomatically-specified theories.  Flow-analyzer
    for multilevel security analysis.
  Dynamics:  Theories along with proofs are developed and saved as
    parameterized modules.   
  Persistence:  The current context consisting of the current modules
    along with their status (parsed, typechecked, proved, etc.) is
    saved so that a new session can be resumed from the current state.

Contact persons: John Rushby, Sam Owre

    Computer Science Laboratory
    SRI International
    333 Ravenswood Avenue
    Menlo Park, CA 94025 USA

    Email {rushby,owre}@csl.sri.com,
    Tel: (415)859-5456/5114
    FAX: (415)859-2844

User group: Used for formal specification and verification of fault
  tolerant algorithms and architectures by SRI and NASA.  In use at
  several other aerospace research centers and also in laboratories
  engaged in secure systems development.
 
Pragmatics:
  Strengths:  Rich type system with predicate subtypes, parameterized
    modules, Refinement hierarchy, Facility for Ada code generation,
    Higher-order logic, Powerful arithmetic decision procedures.
    Proof descriptions allow informal proof to be extracted.
    Has been used (by people other than its developers) to perform
    very hard formal specifications and verifications (e.g., Byzantine
    fault tolerant algorithms, including clock-synchronization) 

  Weaknesses:  Restricted availability.
    Only limited support for interactive proof development and rewriting.
    Proof checking tools are not customizable via tactics.

Documentation: full language and system manuals and tutorial are
   available; several large specifications and verifications are fully
   documented; some smaller examples are being developed.

Applications:
   1. Verification of Lamport and Melliar-Smith's Interactive
      Convergence Algorithm for Byzantine fault-tolerant clock
      synchronization.  EHDM proof identified several flaws in the
      original argument.
   2. Verification of a Schematic Protocol for Byzantine fault-tolerant
      clock synchronization due to Schneider.  Paul Miner at NASA has
      modified this proof and verified the correctness requirements for
      Lundelius and Lynch's fault-tolerant midpoint algorithm.
   3. Verification of a refinement hierarchy for a Reliable Computing
      Platform for digital flight-control applications.  Proof includes
      fault-masking and transient recovery in the presence of skews
      between local clocks.
   4. Formal specification and verification of the "unwinding
      theorems" of classical and intransitive noninterference (a
      formulation of computer security)
   5. Several smaller examples: mini-Cayuga pipelined
      microprocessor, finite Ramsey theorem,
      Oral Messages algorithm for Interactive Consistency and
      Byzantine Agreement. 

Extensions/enhancements: Expect to augment theorem prover with
  technology developed for PVS

Resource requirements:
  implementation language: Common Lisp/CLOS; runs on Sun 3 and Sun 4
    workstations; requires Lucid Lisp licence

  environment support required: uses customized Gnu Emacs as its
    interface; pop-up menus available under SunView;
    typeset specifications require LaTeX; needs 32Mbytes of real
    memory, 50+ Mbytes of swap space, 50 MBytes of disk space.

Where-to-get-it: 
  Distribution controlled by National Security Agency: permission
    granted routinely for US Government agencies, US Companies and
    Universities; no overseas distribution.

  Contact John Rushby at address above for information on procedure
     for requesting permission to use system from NSA.   System
     supplied free of charge (object-code only) on Sun cartridge.
  No ftp distribution.

Info source/date: John Rushby, Aug 5, 1992

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
