- Information Flow Control (IFC) case study using the QuickChick testing plugin for Coq. Includes verification of testing and some other Coq proofs (see below).
- Coq 8.4pl4 or 8.4pl5 (https://coq.inria.fr/download)
- SSReflect 1.5 (http://ssr.msr-inria.inria.fr/FTP/)
- QuickChick plugin (https://github.com/QuickChick/QuickChick)
- Only for
NIProof.v: Mathematical Components 1.5 (http://www.msr-inria.fr/projects/mathematical-components-2/)
- Information-flow machine (http://arxiv.org/abs/1409.0393)
Labels.v,Lab2.v,Lab4.v,LabSetsOfPrins.vInstructions.v,Memory.v,Rules.v,Machine.v
- Testing code
Driver.v-- runs the testsTestingCommon.v,Generation.v,Shrinking.v,Printing.vIndist.v,Reachability.v,SanityChecks.v,SSNI.vMutate.v-- generating mutants for mutation testing
- Testing verification proofs
GenerationProofsHelpers.vGenerationProofs.vSSNICheckerProofs.v-- CH: broken since 2f9d25043cf
- Noninterference proofs
NotionsOfNI.v-- proofs relating various noninterference notionsNIProof.v-- a still unfinished noninterference proofIndist.v-- the indistinguishability relation
- An experiment with representing IFC rules inductively
(requires relation extraction Coq plugin:
https://github.com/picnic/RelationExtraction)
RelationExtraction.v
make
make && coqc Driver.v
- The files in this directory are under the MIT license (see LICENSE)
- The files in the compcert/lib directory are dual-licensed under the INRIA Non-Commercial License Agreement and the GNU General Public License version 2 or later (see compcert/LICENSE)