Part I: Introduction Chpater: What CIVL is all about: purpose, verification, CIVL-C, tools, organization of this document Chapter: Installation and Quick Start Chpater: Some examples Part II: Language Chapter: Language overview Key concepts: static scope tree, nested functions, dynamic scope tree Examples! C, Syntax, #include $ sign, nested functions, processes, spawning, waiting, types, ... Chapter: Structure of program preprocessor directives function prototypes and definitions lexical scopes and the lexical scope tree naming scopes ($scope) translation of source to model root function, root scope and the main function formal parameters to main, return value Chapter: Sequential elements Section: types: inherited from C: integer and real, boolean, arrays pointer bundles sequences int a[] (coming) Section: expressions (currently missing: bitwise,...) Section: statements inherited from C : for, while, {...} goto, labeled statements, switch, case, default, break, continue, ... Section: Nondeterminism: $choose/$when $choose_int Chapter: Concurrency section: Process creation and magagement: $proc type, $spawn, $wait, $self return value of spawned function (must be function returning void?) section: dynamic scope tree, revisited, and the state of a CIVL program section: Atomicity: $atom, $atomic, guards and $when section: Message Passing Chapter: Specification section: overview, and pointer to concurrency section for more specification primitivies section: input/output signature: $input, $output section: assertions and assumptions: $assert, $assume, $invariant section: assertion language: $forall, $exists, => (implies) (in addition to &&, ||, !) section: procedure contracts, $ensures, $requires (coming) section: Concurrency specification: remote expressions, collective expressions Chapter: Pointers and Heaps $malloc, $free, memcpy scope-parameterized pointers Chapter: Libraries The following can be included to provide additional primitives: (in addition to civlc.h): stdbool.h stdio.h stdlib.h assert.h Part III: Semantics The formal description of semantics Part IV: Tools Chapter: Tool introduction section: symbolic execution (background) section: tool overview, command line civl, civl help Chapter: running a CIVL-C program Chapter: model checking, options Chapter: replaying counter-examples Chapter: MPI programs