GIOLIT PROGRAM VERIFIER 7.0

World's first end-to-end C project formal verifier

Until now, teams could only formally verify single functions — Giolit Verifier verifies end-to-end projects spanning multiple files.

Download the Giolit Program Verifier 7.0.

Prove your C project free of run-time errors.

Testing tries a few inputs — proof covers them all, with a certificate for every run. Free 1000-run trial for Ubuntu 24.04.

FAST: a typical check finishes in about 10 seconds · a small thread proof in about half a second (~0.5s) · the 35-file project entry in about 16 seconds · first answer wins — you get the verdict as soon as it is known.
Limited Trial

C verifier trial: 1000 runs, 50 days

Testing tries a few inputs — this trial proves every input: get the giolit-verifier-7.0.0-trial.tar.gz package with the v7 command, 12 tutorial examples, 177 benchmarks with known answers (102 proven safe, 75 real bugs) and every result bundle, plus Tutorial, Product Overview, README and License Terms. Run v7 file.c on Ubuntu 24.04 — when it can't be proven you get the exact failing input plus a step-by-step trace, and each run yields a certificate your auditors can check — see what the verifier checks.

Every input, not a sample — proof covers all inputs, paths and thread interleavings
Real bugs with the failing input — exact input + step-by-step trace, never a false alarm
Evidence, not opinions — each run yields a certificate your auditors can check
Fast for daily use — median ~10s, ~0.5s concurrent proof, ~16s for the 35-file project entry

Trial limits: 1000 runs within 50 days on one Linux computer.

Check status anytime with v7 --license (free, uses no runs). After the trial period, continued use requires a purchased license. Use the Purchase License button to contact Giolit about licensing options.

Purchase License
Download Access

Get the Verifier trial package

Tell us a little about yourself. Once submitted, the download control will be unlocked.

Your details are submitted to Giolit for download access and follow-up. Marketing emails are only sent if you opt in above.

Complete C projects formal verifier

End-to-end C projects

Testing tries a few inputs — proof covers them all: every input, every path and every possible thread interleaving, across every file in your project. When it can't be proven you get the exact failing input plus a step-by-step trace, never a false alarm. Each run yields a certificate your auditors can check: PROVEN, or VIOLATED with the failing input and trace. Fast and fit for daily use: typical check in about 10 seconds across 177 benchmarks (102 safe / 75 real bugs), small thread proof in about half a second (~0.5s), 35-file project entry in about 16 seconds — first answer wins.

The C project may include multiple threads or recursions, multiple functions and multiple files.

$ v7 a.c b.c -I include -D CONFIG=1

$ v7 --entry=kv_fletcher16_words -DKV_SEQUENTIAL -Iinclude src/*.c --report=out

  • Multi-file, multi-flag projects — pass every translation unit and flag together: v7 a.c b.c -I include -D CONFIG=1, with src/*.c + -Iinclude linked end to end.
  • Threads: POSIX threads + C11 atomics — every thread interleaving checked; data races surface as VIOLATED reports with the failing interleaving and trace.
  • Recursion via contracts — recursive functions verify against their contracts instead of unrolling forever.
  • --entry per-function proofs — prove one entry at a time (--entry=my_func) while still linking all project files, so large codebases verify incrementally.
  • Project scale — kvserver project scale (~8400 lines / 34 modules); the example certificate below links 35 files / 4870 lines end to end for entry kv_fletcher16_words in 16s.

Proven outputs

Example certificates

Testing tries a few inputs — proof covers them all. Every run ends with proof you can hand to an auditor: a certificate when everything is proven, or a report with the exact failing input and step-by-step trace when a bug is found, never a false alarm. Below are three real outputs — two small thread examples and one 35-file project proof. Each PDF carries the verdict, the exact command, per-check results and the full proof.

Example verification certificate PDF — concurrent mutex proof, 2 checks PROVEN in 0.5 seconds

PROVEN

Concurrent mutex — all checks proven

2 PROVEN / 0 violated · 0.5s · 06_threads_mutex.c (entry main), 25 lines

Download PDF
Example verification report PDF — threads race violation with failing interleaving in 0.3 seconds

VIOLATED

Threads race — violation found

1 violated + failing interleaving · 0.3s · 07_threads_race.c (entry main), 23 lines

Download PDF
Example multi-file C project verification certificate PDF — kvserver entry kv_fletcher16_words, 9 proven in 16 seconds

PROVEN

kvserver project — per-function proof

9 proven / 0 violated · 16s · 35 files / 4870 lines · entry kv_fletcher16_words · 104 pages

Download PDF

Generated by the pro engine — trial produces trial-marked equivalents with the same PDF + JSON & proof bundle (full machine-readable outputs listed in the expert details below).

What's inside

C trial package contents

Testing tries a few inputs — this package proves every input. Each run yields a certificate your auditors can check.

  • v7 command — verify with v7 file.c, select properties with --checks, set budget with --timeout.
  • 12 tutorial examples — overflow, memory safety, concurrency and assertion checks you can run in minutes.
  • 177 benchmarks with known answers (102 proven safe, 75 real bugs) and every result bundle.
  • Docs — Tutorial, Product Overview, README and License Terms PDFs.

System requirements

Runs on Ubuntu 24.04 Linux x86-64

Proof covers them all — install in minutes, then get evidence, not opinions, on your own machine.

  • Ubuntu 24.04 LTS x86-64 or newer (one Linux computer per trial).
  • LLVM/Clang 18 (libllvm18, libclang-cpp18), libc6-dev, libssl3.
  • LuaLaTeX + qpdf for PDF certificate generation (JSON & proof need no extras).

Install steps

Install and verify in minutes

When it can't be proven you get the exact failing input plus a step-by-step trace — fit for daily use straight from the command line.

$ tar xzf giolit-verifier-7.0.0-trial.tar.gz

$ ./install.sh

$ v7 file.c

$ v7 --checks=overflow,valid-deref file.c --report=out

$ v7 --license

Fits into your build: it passes when proven and stops with the exact bug details when a real bug is found. Learn how CI gating works.

Check coverage

Run-time errors the trial detects

Testing tries a few inputs — proof checks every input for number, memory and thread mistakes, with no false alarms.

  • Number mistakes — overflow, division by zero, invalid shifts.
  • Memory mistakes — out-of-bounds arrays, null or dangling pointer use, double or invalid free, leaks.
  • Failed checks plus thread interleaving mistakes. Full check list.

Expert details

  • Checks: integer overflow (CWE-190), division by zero (CWE-369), invalid shifts (CWE-1335), array-bounds (CWE-787), null/dangling dereference (CWE-476/416), double/invalid free (CWE-415/761), leaks (CWE-401); threads via Owicki-Gries — POSIX threads + C11 atomics, all interleavings.
  • Outputs: PDF certificate + JSON, SARIF 2.1.0 & proof.json with proof on control-flow graph; --sarif upload to GitHub code scanning or GitLab; C++ SDK.
  • CI: exit codes 0 proven, 1 violated, 2 unknown, 3 usage error, 4 no license; --checks, --timeout, --entry, --report.

Giolit Program Verifier evaluation access • Automated formal verification • Production use requires a license

Giolit Verification

Meet the Giolit Program Verifier

Explore Giolit's automated formal verification technology for high-assurance software systems.

Explore Verifier