Cabal-version: 2.2
Name: copilot-verifier
Version: 4.1
Author: Galois Inc.
Maintainer: rscott@galois.com
Copyright: (c) Galois, Inc 2021-2024
License: BSD-3-Clause
License-file: LICENSE
Build-type: Simple
Category: Language
Synopsis: System for verifying the correctness of generated Copilot programs
Description:
@copilot-verifier@ is an add-on to the [Copilot Stream
DSL](https://copilot-language.github.io) for verifying the correctness of C
code generated by the @copilot-c99@ package.
.
@copilot-verifier@ uses the [Crucible symbolic
simulator](https://github.com/galoisinc/crucible) to interpret the semantics
of the generated C program and and to produce verification conditions
sufficient to guarantee that the meaning of the generated program corresponds
in a precise way to the meaning of the original stream specification. The
generated verification conditions are then dispatched to SMT solvers to be
automatically solved.
extra-doc-files: CHANGELOG, README.md
source-repository head
type: git
location: https://github.com/GaloisInc/copilot-verifier
subdir: copilot-verifier
common bldflags
ghc-options: -Wall
-Werror=incomplete-patterns
-Werror=missing-methods
-Werror=overlapping-patterns
-Wpartial-fields
-Wincomplete-uni-patterns
ghc-prof-options: -O2 -fprof-auto-exported
default-language: Haskell2010
default-extensions:
NondecreasingIndentation
build-depends:
aeson >= 1.5 && < 2.3,
base >= 4.8 && < 4.20,
bv-sized >= 1.0.0 && < 1.1,
bytestring,
containers >= 0.5.9.0,
copilot-c99 >= 4.1 && < 4.2,
copilot-core >= 4.1 && < 4.2,
copilot-theorem >= 4.1 && < 4.2,
crucible >= 0.7.1 && < 0.8,
crucible-llvm >= 0.7 && < 0.8,
crux >= 0.7.1 && < 0.8,
crux-llvm >= 0.9 && < 0.10,
filepath,
lens,
llvm-pretty >= 0.12.1.0 && < 0.13,
mtl,
panic >= 0.3,
parameterized-utils >= 2.1.4 && < 2.2,
prettyprinter >= 1.7.0,
text,
transformers,
vector,
what4 >= 1.6.1 && < 1.7
library
import: bldflags
hs-source-dirs: src
exposed-modules:
Copilot.Verifier
Copilot.Verifier.Log
library copilot-verifier-examples
import: bldflags
hs-source-dirs: examples
build-depends:
case-insensitive,
copilot >= 4.1 && < 4.2,
copilot-language >= 4.1 && < 4.2,
copilot-prettyprinter >= 4.1 && < 4.2,
copilot-verifier
exposed-modules:
Copilot.Verifier.Examples
Copilot.Verifier.Examples.ShouldFail.Partial.AbsIntMin
Copilot.Verifier.Examples.ShouldFail.Partial.AddSignedWrap
Copilot.Verifier.Examples.ShouldFail.Partial.DivByZero
Copilot.Verifier.Examples.ShouldFail.Partial.IndexOutOfBounds
Copilot.Verifier.Examples.ShouldFail.Partial.ModByZero
Copilot.Verifier.Examples.ShouldFail.Partial.MulSignedWrap
Copilot.Verifier.Examples.ShouldFail.Partial.ShiftLTooLarge
Copilot.Verifier.Examples.ShouldFail.Partial.ShiftRTooLarge
Copilot.Verifier.Examples.ShouldFail.Partial.SubSignedWrap
Copilot.Verifier.Examples.ShouldPass.Array
Copilot.Verifier.Examples.ShouldPass.ArrayGen
Copilot.Verifier.Examples.ShouldPass.ArrayOfStructs
Copilot.Verifier.Examples.ShouldPass.ArrayTriggerArgument
Copilot.Verifier.Examples.ShouldPass.Arith
Copilot.Verifier.Examples.ShouldPass.Clock
Copilot.Verifier.Examples.ShouldPass.Counter
Copilot.Verifier.Examples.ShouldPass.Engine
Copilot.Verifier.Examples.ShouldPass.FPOps
Copilot.Verifier.Examples.ShouldPass.Heater
Copilot.Verifier.Examples.ShouldPass.IntOps
Copilot.Verifier.Examples.ShouldPass.Partial.AbsIntMin
Copilot.Verifier.Examples.ShouldPass.Partial.AddSignedWrap
Copilot.Verifier.Examples.ShouldPass.Partial.DivByZero
Copilot.Verifier.Examples.ShouldPass.Partial.IndexOutOfBounds
Copilot.Verifier.Examples.ShouldPass.Partial.ModByZero
Copilot.Verifier.Examples.ShouldPass.Partial.MulSignedWrap
Copilot.Verifier.Examples.ShouldPass.Partial.ShiftLTooLarge
Copilot.Verifier.Examples.ShouldPass.Partial.ShiftRTooLarge
Copilot.Verifier.Examples.ShouldPass.Partial.SubSignedWrap
Copilot.Verifier.Examples.ShouldPass.Structs
Copilot.Verifier.Examples.ShouldPass.UpdateArray
Copilot.Verifier.Examples.ShouldPass.UpdateStruct
Copilot.Verifier.Examples.ShouldPass.Voting
Copilot.Verifier.Examples.ShouldPass.WCV
executable verify-examples
import: bldflags
hs-source-dirs: exe
main-is: VerifyExamples.hs
build-depends:
case-insensitive,
copilot-verifier,
copilot-verifier-examples,
optparse-applicative
test-suite copilot-verifier-test
import: bldflags
type: exitcode-stdio-1.0
hs-source-dirs: test
build-depends:
case-insensitive,
copilot-verifier,
copilot-verifier-examples,
silently >= 1.2,
tasty >= 0.10,
tasty-expected-failure >= 0.12,
tasty-hunit >= 0.10
main-is: Test.hs