Cabal-version: 2.2
Name: copilot-verifier
Version: 0.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 <https://copilot-language.github.io
Copilot Stream DSL> for verifying the correctness of C code generated by the
@copilot-c99@ package.
.
@copilot-verifier@ uses the <https://github.com/galoisinc/crucible Crucible
symbolic simulator> 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.md, 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.18,
bv-sized >= 1.0.0 && < 1.1,
bytestring,
containers >= 0.5.9.0,
copilot >= 3.18.1 && < 3.19,
copilot-c99 >= 3.18.1 && < 3.19,
copilot-core >= 3.18.1 && < 3.19,
copilot-libraries >= 3.18.1 && < 3.19,
copilot-language >= 3.18.1 && < 3.19,
copilot-prettyprinter >= 3.18.1 && < 3.19,
copilot-theorem >= 3.18.1 && < 3.19,
crucible >= 0.7 && < 0.8,
crucible-llvm >= 0.6 && < 0.7,
crux >= 0.7 && < 0.8,
crux-llvm >= 0.8 && < 0.9,
filepath,
lens,
llvm-pretty,
mtl,
panic >= 0.3,
parameterized-utils >= 2.1.4 && < 2.2,
prettyprinter >= 1.7.0,
text,
transformers,
vector,
what4 >= 0.4
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-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.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