package libsail
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=0b223ed83f521ad87eaacd88186390fbaf0b944f63c6a04a3ebdf96a1ff5a60c
sha512=83298218175c7a9ff7f0a304021287a2b9c20523cb16e1b8bf0ede81fa8e256a32b309626bc1553a5b46d68e44821524c27a5de0fb2f2d7f013025f61ce76519
doc/libsail/Libsail/index.html
Module LibsailSource
Module for breaking AST into syntactic chunks and interleaving comments.
Interpreting JSON values from configuration files as Sail expressions.
const_prop target ast ref_vars substs assigns exp performs constant propagation on exp where substs is a pair of substitutions on immutable variables and type variables, assigns is a substitution on mutable variables, and ref_vars is the set of variable which may have had a reference taken (and hence we cannot reliably track).
This module implements the interface with the Z3 (or other) SMT solver
In Sail, we need to distinguish between pure and impure (side-effecting) functions. This is because there are few places, such as top-level let-bindings and loop termination measures where side effects must clearly be forbidden. This module implements inference for which functions are pure and which are effectful, and checking the above purity restrictions.
module Extraction : sig ... endInitial desugaring pass over AST after parsing
Compile Sail ASTs to Jib intermediate representation
Utilities and helper functions for operating on Jib instructions and definitions
This module provides a parallel map function that uses OCaml 5 Effect handlers to provide a limited form of parallelism.
This module provides an interface to the Rocq Extraction.ZAst module for partial evaluation of Sail expressions.
Definition of Sail project files, and functions for working with them.
This file implements utilities for dealing with $property and $counterexample pragmas.
This module contains all the logic for working with source files.
Rewrites for removing polymorphism from specifications
The type checker API
Type error utilities