doc: update readme

This commit is contained in:
Simon Cruanes 2022-09-26 21:00:09 -04:00
parent 1c11a82a7d
commit 40e124931c
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4

View file

@ -1,6 +1,6 @@
# Sidekick [![Build](https://github.com/c-cube/sidekick/actions/workflows/main.yml/badge.svg)](https://github.com/c-cube/sidekick/actions/workflows/main.yml) # Sidekick [![Build](https://github.com/c-cube/sidekick/actions/workflows/main.yml/badge.svg)](https://github.com/c-cube/sidekick/actions/workflows/main.yml)
Sidekick is an OCaml library with a functor to create SMT solvers following Sidekick is an OCaml library for creating SMT solvers following
the CDCL(T) approach (so called "lazy SMT"). See [below](#short-summary) the CDCL(T) approach (so called "lazy SMT"). See [below](#short-summary)
for a more detailed explanation. for a more detailed explanation.
@ -35,11 +35,11 @@ arithmetic, algebraic datatypes, and others.
Sidekick is a CDCL(T) solver implemented in pure [OCaml](https://ocaml.org/) Sidekick is a CDCL(T) solver implemented in pure [OCaml](https://ocaml.org/)
and with a strong focus on modularity and reusability of components. and with a strong focus on modularity and reusability of components.
Almost everything in the code is _functorized_ and generic over the concrete It _used to_ provide a functorized interface, but it now comes with its own
representation of terms, formulas, etc. representation of terms, in a simple version of the Calculus of Constructions.
The goal is for users to be able to implement their own theories and combine Users can extend that term representation by adding new custom _constants_
them with the pre-existing ones in a bespoke solver, something that is typically to model their domain theories. Most of the constants defined in sidekick are
a lot of work in the C/C++ solvers. defined exactly as outside constants would be.
Sidekick comes in several components (as in, opam packages): Sidekick comes in several components (as in, opam packages):