source: CIVL/docs/index.md

2.0
Last change on this file was 58e4389, checked in by Stephen Siegel <siegel@…>, 12 days ago

Improvements to documentation; fixed two tests in ABC.

  • Property mode set to 100644
File size: 5.6 KB
RevLine 
[135e8cf]1# The CIVL Model Checker
2
3## About
4
[8ae32f6]5The CIVL model checker is a verification tool for sequential or parallel
6programs.
7It targets primarily C programs, including parallel C programs that use
8OpenMP or MPI, and CUDA-C programs.
9The general verification approach is based on model checking and symbolic execution.
10
11The verifier uses a concurrency intermediate verification language, CIVL-C.
12Users may write in CIVL-C directly; this is a good way to prototype
13algorithms. One may also start from standard C (or CUDA-C), which
14the tool first translates to CIVL-C. CIVL may also be applied to programs
15composed of multiple translation units, some of which are in CIVL-C
16and others in C or CUDA-C.
17
18CIVL can verify a number of safety properties, including absence of assertion
19violations, deadlocks, memory leaks, illegal pointer dereferences, out-of-bound
20array indexes, and divisions by zero. In most cases, this requires placing
21relatively small bounds on the size of inputs and/or the numbers of threads or
22processes. In any case, when a violation is found, detailed diagnostic
23information is provided, including a (minimal) execution trace terminating
24in a violating state.
25
26CIVL currently supports only subsets of the languages and language
27extensions mentioned above. We are continually expanding these subsets,
28prioritizing the most commonly-used language features.
29
[135e8cf]30## Documentation
31* [Introduction](introduction.md)
32* [CIVL-C Fundamentals](fundamentals.md)
33* [Language Manual](language.md)
34* [Libraries](libraries.md)
35* [Command Line Interface](cli.md)
36* [Examples](examples.md)
37
38## Publications
39* [Symbolic Execution and Deductive Verification Approaches to VerifyThis 2017 Challenges](https://vsl.cis.udel.edu/pubs/isola18.html), Ziqing Luo and Stephen F. Siegel, ISoLA'18.
40* [Verifying Properties of Differentiable Programs](https://vsl.cis.udel.edu/pubs/math_properties_sas18.html), J. Hückelheim, Z. Luo, S.H.K. Narayanan, S.F. Siegel, and P.D. Hovland, SAS'18.
41* [Towards Self-Verification in Finite Difference Code Generation](https://vsl.cis.udel.edu/pubs/correctness_2017_towards.html), J. Hückelheim, Z. Luo, F. Luporini, N. Kukreja, M. Lange, G. Gorman, S.F. Siegel, M. Dwyer, and P.D. Hovland, Correctness'17.
42* [CIVL Manual](https://vsl.cis.udel.edu/lib/sw/civl/civl-manual.pdf), M.B. Dwyer, J. Edenhofner, G. Gopalakrishnan, A. Marianiello, Z. Luo, Z. Rakamaric, M. Rogers, S.F. Siegel, M. Zheng, and T.K. Zirkel
43* [CIVL: The Concurrency Intermediate Verification Language](https://vsl.cis.udel.edu/pubs/civl_sc_2015.html), S.F. Siegel, M. Zheng, Z. Luo, T.K. Zirkel, A.V. Marianiello, J.G. Edenhofner, M.B. Dwyer and M.S. Rogers, SC'15.
44* [Verification of MPI programs using CIVL](https://vsl.cis.udel.edu/pubs/civl_eurompi_2017.html), Z. Luo, M. Zheng, and S.F. Siegel, EuroMPI'17.
45* [DOE Report of the HPC Correctness Summit](https://science.energy.gov/~/media/ascr/pdf/programdocuments/docs/2017/HPC_Correctness_Report.pdf), G. Gopalakrishnan, P.D. Hovland, C. Iancu, S. Krishnamoorthy, I. Laguna, R.A. Lethin, K. Sen, S.F. Siegel, and A. Solar-Lezama, DOE TechReport'17.
46* [CIVL Solutions to VerifyThis 2016 Challenges](https://vsl.cis.udel.edu/pubs/civl_verifythis_2016.html), Stephen F. Siegel, VerifyThis'16.
47* [CIVL: Applying a General Concurrency Verification Framework to C/Pthreads Programs Competition Contribution](https://vsl.cis.udel.edu/pubs/civl_svcomp_2016.html), M. Zheng, J.G. Edenhofner, Z. Luo, M.J. Gerrard, M.S. Rogers, M.B. Dwyer, and S.F. Siegel, TACAS'16
48* [CIVL: Formal Verification of Parallel Programs](https://vsl.cis.udel.edu/pubs/civl_ase_2015.html), M. Zheng, M.S. Rogers, Z. Luo, M.B. Dwyer, and S.F. Siegel, ASE'15.
49* [Tech Report: CIVL: The Concurrency Intermediate Verification Language](https://vsl.cis.udel.edu/pubs/civl_tr_2014.html), S.F. Siegel, M.B. Dwyer, G. Gopalakrishnan, Z. Luo, Z. Rakamaric, R. Thakur, M. Zheng, and T.K. Zirkel, Technical Report UD-CIS-2014/001.
50* [VSL Publication List](https://vsl.cis.udel.edu/pubs/index.html)
51
52## How to Cite CIVL
53```bibtex
54@Inproceedings{siegel-etal:2015:civl_sc,
55 author = {Stephen F.\ Siegel and Manchun Zheng and Ziqing Luo and
56 Timothy K.\ Zirkel and Andre V.\ Marianiello and John G.\ Edenhofner
57 and Matthew B.\ Dwyer and Michael S.\ Rogers},
58 title = {{CIVL}: The Concurrency Intermediate Verification Language},
59 booktitle = {SC15: International Conference for High Performance
60 Computing, Networking, Storage and Analysis, Proceedings},
61 series = {SC '15},
62 year = {2015},
63 month = {Nov},
64 publisher = {IEEE Press},
65 address = {Piscataway, NJ, USA},
[8ae32f6]66 pages = {61:1-61:12},
67 doi = {10.1145/2807591.2807635}
[135e8cf]68}
69```
70
71## Bug Reports
[8ae32f6]72To report a bug in CIVL, either create a [GitHub issue](https://github.com/verified-software-lab/civl/issues) or send an email to `civl-dev@googlegroups.com`.
73Include as many details as possible, such as the CIVL command, source files (these may be attached), the CIVL version, and the output, including any error message.
[135e8cf]74
75## Developers
[8ae32f6]76* Current Developers: [Stephen Siegel](https://vsl.cis.udel.edu/siegel.html) and Alex Wilton
77* Previous Contributors: Matthew Dwyer, John Edenhofner, Mitchell Gerrard, Ziqing Luo, Andre Marianiello, Michael Rogers, Wenhao Wu, Yihao Yan, Manchun Zheng and Timothy Zirkel
[135e8cf]78
[b8784c0]79[DeveloperPage](https://vsl.cis.udel.edu/trac/civl/wiki/DeveloperPage)
[135e8cf]80
81## License
[8ae32f6]82CIVL is copyright from 2013 to 2026, Verified Software Laboratory, Department of Computer and Information Sciences, University of Delaware.
[135e8cf]83
84CIVL is distributed under the terms of the [GNU General Public License v3](https://www.gnu.org/licenses/gpl.html). (See the directory licenses in the distribution for details.)
Note: See TracBrowser for help on using the repository browser.