Verify C Code using Why3

# Online version of Why3

This version of Why3 is intended for teaching purposes.

The WhyML language is described in the Why3 manual.

## Verifying a program

Click on the gears button to launch the verification. Verification conditions (VCs) then appear in the right panel, in the Task List tab, and Alt-Ergo is run on each of them with a default time limit (that can be set in the Settings menu).

When a VC is not proved, there are several options:

- use the contextual menu to rerun Alt-Ergo with a larger time limit (e.g. 1000 or 5000 steps instead of 100);
- use the contextual menu to split the VC and rerun Alt-Ergo on each sub-VC (split and prove);
- use the Task View tab to investigate the problematic VC, for wrong or missing elements of specification (precondition, postcondition, invariant);
- add intermediate assertions in the code, using `//@ assert ...;`.