summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/_static/custom.css10
-rw-r--r--docs/api/cpp/class_hierarchy.rst45
-rw-r--r--docs/api/cpp/cpp.rst80
-rw-r--r--docs/conf.py.in4
-rw-r--r--docs/examples/examples.rst8
-rw-r--r--docs/references.bib93
-rw-r--r--docs/theories/datatypes.rst8
-rw-r--r--docs/theories/separation-logic.rst7
-rw-r--r--docs/theories/sets-and-relations.rst6
9 files changed, 188 insertions, 73 deletions
diff --git a/docs/_static/custom.css b/docs/_static/custom.css
index a5403c295..9d07edeaf 100644
--- a/docs/_static/custom.css
+++ b/docs/_static/custom.css
@@ -87,3 +87,13 @@ a:hover, a:focus {
.highlight .m {
color: #ba2121;
}
+
+#c-api-class-hierarchy code {
+ font-size: 100%;
+ font-weight: normal;
+ font-family: "Lato","proxima-nova","Helvetica Neue","Arial","sans-serif";
+}
+
+.hide-toctree {
+ display: none;
+}
diff --git a/docs/api/cpp/class_hierarchy.rst b/docs/api/cpp/class_hierarchy.rst
new file mode 100644
index 000000000..3fda2f348
--- /dev/null
+++ b/docs/api/cpp/class_hierarchy.rst
@@ -0,0 +1,45 @@
+C++ API Class Hierarchy
+=======================
+
+``namespace cvc5::api {``
+
+ * class :cpp:class:`CVC5ApiException <cvc5::api::CVC5ApiException>`
+ * class :cpp:class:`CVC5ApiRecoverableException <cvc5::api::CVC5ApiRecoverableException>`
+
+ * class :ref:`api/cpp/datatype:datatype`
+
+ * class :cpp:class:`const_iterator <cvc5::api::Datatype::const_iterator>`
+
+ * class :ref:`api/cpp/datatypeconstructor:datatypeconstructor`
+
+ * class :cpp:class:`const_iterator <cvc5::api::DatatypeConstructor::const_iterator>`
+
+ * class :ref:`api/cpp/datatypeconstructordecl:datatypeconstructordecl`
+ * class :ref:`api/cpp/datatypedecl:datatypedecl`
+ * class :ref:`api/cpp/datatypeselector:datatypeselector`
+
+ * class :ref:`api/cpp/grammar:grammar`
+
+ * class :ref:`api/cpp/kind:kind`
+
+ * class :ref:`api/cpp/op:op`
+
+ * class :ref:`api/cpp/result:result`
+
+ * enum :cpp:enum:`UnknownExplanation <cvc5::api::Result::UnknownExplanation>`
+
+ * class :ref:`api/cpp/roundingmode:roundingmode`
+
+ * class :ref:`api/cpp/solver:solver`
+
+ * class :ref:`api/cpp/sort:sort`
+
+ * class :cpp:class:`Stat <cvc5::api::Stat>`
+
+ * class :cpp:class:`Statistics <cvc5::api::Statistics>`
+
+ * class :ref:`api/cpp/term:term`
+
+ * class :cpp:class:`const_iterator <cvc5::api::Term::const_iterator>`
+
+``}``
diff --git a/docs/api/cpp/cpp.rst b/docs/api/cpp/cpp.rst
index 8d302d60c..17e121a2c 100644
--- a/docs/api/cpp/cpp.rst
+++ b/docs/api/cpp/cpp.rst
@@ -6,63 +6,27 @@ C++ API Documentation
.. toctree::
:maxdepth: 2
- datatype
- datatypeconstructor
- datatypeconstructordecl
- datatypedecl
- datatypeselector
- exceptions
- grammar
- kind
- op
- result
- roundingmode
- solver
- sort
- statistics
- term
+ class_hierarchy
+
+.. container:: hide-toctree
+
+ .. toctree::
+ :maxdepth: 0
+
+ datatype
+ datatypeconstructor
+ datatypeconstructordecl
+ datatypedecl
+ datatypeselector
+ exceptions
+ grammar
+ kind
+ op
+ result
+ roundingmode
+ solver
+ sort
+ statistics
+ term
-Class Hierarchy
----------------
-
-* namespace ``cvc5::api``
-
- * class :cpp:class:`CVC5ApiException <cvc5::api::CVC5ApiException>`
- * class :cpp:class:`CVC5ApiRecoverableException <cvc5::api::CVC5ApiRecoverableException>`
-
- * class :cpp:class:`Datatype <cvc5::api::Datatype>`
-
- * class :cpp:class:`const_iterator <cvc5::api::Datatype::const_iterator>`
-
- * class :cpp:class:`DatatypeConstructor <cvc5::api::DatatypeConstructor>`
-
- * class :cpp:class:`const_iterator <cvc5::api::DatatypeConstructor::const_iterator>`
-
- * class :cpp:class:`DatatypeConstructorDecl <cvc5::api::DatatypeConstructorDecl>`
- * class :cpp:class:`DatatypeDecl <cvc5::api::DatatypeDecl>`
- * class :cpp:class:`DatatypeSelector <cvc5::api::DatatypeSelector>`
-
- * class :cpp:class:`Grammar <cvc5::api::Grammar>`
-
- * enum :cpp:enum:`Kind <cvc5::api::Kind>`
-
- * class :cpp:class:`Op <cvc5::api::Op>`
-
- * class :cpp:class:`Result <cvc5::api::Result>`
-
- * enum :cpp:enum:`UnknownExplanation <cvc5::api::Result::UnknownExplanation>`
-
- * enum :cpp:enum:`RoundingMode <cvc5::api::RoundingMode>`
-
- * class :cpp:class:`Solver <cvc5::api::Solver>`
-
- * class :cpp:class:`Sort <cvc5::api::Sort>`
-
- * class :cpp:class:`Stat <cvc5::api::Stat>`
-
- * class :cpp:class:`Statistics <cvc5::api::Statistics>`
-
- * class :cpp:class:`Term <cvc5::api::Term>`
-
- * class :cpp:class:`const_iterator <cvc5::api::Term::const_iterator>`
diff --git a/docs/conf.py.in b/docs/conf.py.in
index 65e880bc9..4447d1441 100644
--- a/docs/conf.py.in
+++ b/docs/conf.py.in
@@ -49,6 +49,9 @@ extensions = [
bibtex_bibfiles = ['references.bib']
+# Make sure the target is unique
+autosectionlabel_prefix_document = True
+
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -67,6 +70,7 @@ html_theme = 'sphinx_rtd_theme'
html_theme_options = {}
html_static_path = ['${CMAKE_CURRENT_SOURCE_DIR}/_static/']
html_css_files = ['custom.css']
+html_show_sourcelink = False
# -- Breathe configuration ---------------------------------------------------
breathe_default_project = "cvc5"
diff --git a/docs/examples/examples.rst b/docs/examples/examples.rst
index 5e17d524b..4132d1545 100644
--- a/docs/examples/examples.rst
+++ b/docs/examples/examples.rst
@@ -1,13 +1,15 @@
Examples
===========
-The following examples show how the APIs (:ref:`cpp-api`, :ref:`python-api`) and input languages can be used.
-For every example, the same problem is constructed and solved using different input mechanisms.
+The following examples show how the APIs (:ref:`cpp-api`, :ref:`python-api`)
+and input languages can be used.
+For every example, the same problem is constructed and solved using different
+input mechanisms.
.. toctree::
:maxdepth: 2
-
+
helloworld
exceptions
bitvectors
diff --git a/docs/references.bib b/docs/references.bib
index 50e410e7b..8e3fd5e69 100644
--- a/docs/references.bib
+++ b/docs/references.bib
@@ -6,3 +6,96 @@
pages={1-84},
doi={10.1109/IEEESTD.2019.8766229}
}
+
+@article{BansalBRT17,
+ author = {Kshitij Bansal and
+ Clark W. Barrett and
+ Andrew Reynolds and
+ Cesare Tinelli},
+ title = {A New Decision Procedure for Finite Sets and Cardinality Constraints
+ in {SMT}},
+ journal = {CoRR},
+ volume = {abs/1702.06259},
+ year = {2017},
+ archivePrefix = {arXiv},
+ eprint = {1702.06259},
+ timestamp = {Mon, 13 Aug 2018 16:47:11 +0200},
+ biburl = {https://dblp.org/rec/journals/corr/BansalBRT17.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{MengRTB17,
+ author = {Baoluo Meng and
+ Andrew Reynolds and
+ Cesare Tinelli and
+ Clark W. Barrett},
+ editor = {Leonardo de Moura},
+ title = {Relational Constraint Solving in {SMT}},
+ booktitle = {Automated Deduction - {CADE} 26 - 26th International Conference on
+ Automated Deduction, Gothenburg, Sweden, August 6-11, 2017, Proceedings},
+ series = {Lecture Notes in Computer Science},
+ volume = {10395},
+ pages = {148--165},
+ publisher = {Springer},
+ year = {2017},
+ doi = {10.1007/978-3-319-63046-5_10},
+ timestamp = {Wed, 25 Sep 2019 18:19:14 +0200},
+ biburl = {https://dblp.org/rec/conf/cade/MengRTB17.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{ReynoldsISK16,
+ author = {Andrew Reynolds and
+ Radu Iosif and
+ Cristina Serban and
+ Tim King},
+ editor = {Cyrille Artho and
+ Axel Legay and
+ Doron Peled},
+ title = {A Decision Procedure for Separation Logic in {SMT}},
+ booktitle = {Automated Technology for Verification and Analysis - 14th International
+ Symposium, {ATVA} 2016, Chiba, Japan, October 17-20, 2016, Proceedings},
+ series = {Lecture Notes in Computer Science},
+ volume = {9938},
+ pages = {244--261},
+ year = {2016},
+ doi = {10.1007/978-3-319-46520-3_16},
+ timestamp = {Tue, 14 May 2019 10:00:49 +0200},
+ biburl = {https://dblp.org/rec/conf/atva/ReynoldsIS016.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{ReynoldsB15,
+ author = {Andrew Reynolds and
+ Jasmin Christian Blanchette},
+ editor = {Amy P. Felty and
+ Aart Middeldorp},
+ title = {A Decision Procedure for (Co)datatypes in {SMT} Solvers},
+ booktitle = {Automated Deduction - {CADE-25} - 25th International Conference on
+ Automated Deduction, Berlin, Germany, August 1-7, 2015, Proceedings},
+ series = {Lecture Notes in Computer Science},
+ volume = {9195},
+ pages = {197--213},
+ publisher = {Springer},
+ year = {2015},
+ doi = {10.1007/978-3-319-21401-6_13},
+ timestamp = {Tue, 14 May 2019 10:00:39 +0200},
+ biburl = {https://dblp.org/rec/conf/cade/ReynoldsB15.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@article{BarrettST07,
+ author = {Clark W. Barrett and
+ Igor Shikanian and
+ Cesare Tinelli},
+ title = {An Abstract Decision Procedure for a Theory of Inductive Data Types},
+ journal = {J. Satisf. Boolean Model. Comput.},
+ volume = {3},
+ number = {1-2},
+ pages = {21--46},
+ year = {2007},
+ doi = {10.3233/sat190028},
+ timestamp = {Mon, 17 Aug 2020 18:32:39 +0200},
+ biburl = {https://dblp.org/rec/journals/jsat/BarrettST07.bib},
+ bibsource = {dblp computer science bibliography, https://dblp.org}
+}
diff --git a/docs/theories/datatypes.rst b/docs/theories/datatypes.rst
index 5f02a8bf8..1211a43ee 100644
--- a/docs/theories/datatypes.rst
+++ b/docs/theories/datatypes.rst
@@ -45,8 +45,8 @@ evaluate to true iff their argument has top-symbol ``C``.
Semantics
---------
-The decision procedure for inductive datatypes can be found
-`here <http://homepage.cs.uiowa.edu/~tinelli/papers/BarST-JSAT-07.pdf>`__.
+The decision procedure for inductive datatypes is described in
+:cite:`BarrettST07`.
Example Declarations
--------------------
@@ -150,8 +150,8 @@ For example:
Codatatypes
-----------
-cvc5 also supports co-inductive datatypes, as described
-`here <http://homepage.cs.uiowa.edu/~ajreynol/cade15.pdf>`__.
+cvc5 also supports co-inductive datatypes, as described in
+:cite:`ReynoldsB15`.
The syntax for declaring mutually recursive coinductive datatype blocks is
identical to inductive datatypes, except that ``declare-datatypes`` is replaced
diff --git a/docs/theories/separation-logic.rst b/docs/theories/separation-logic.rst
index c2dcda78e..86f802ef8 100644
--- a/docs/theories/separation-logic.rst
+++ b/docs/theories/separation-logic.rst
@@ -7,10 +7,9 @@ language.
Signature
---------
-Given a (decidable) base theory :math:`T`, cvc5 has a
-`decision procedure <https://cvc4.github.io/publications/2016/RIS+16.pdf>`__
-for quantifier-free :math:`SL(T)_{Loc,Data}` formulas, where :math:`Loc` and
-:math:`Data` are any sort belonging to :math:`T`.
+Given a (decidable) base theory :math:`T`, cvc5 implements a decision procedure
+for quantifier-free :math:`SL(T)_{Loc,Data}` formulas :cite:`ReynoldsISK16`,
+where :math:`Loc` and :math:`Data` are any sort belonging to :math:`T`.
A :math:`SL(T)_{Loc,Data}` formula is one from the following grammar:
diff --git a/docs/theories/sets-and-relations.rst b/docs/theories/sets-and-relations.rst
index 79838334f..88671a837 100644
--- a/docs/theories/sets-and-relations.rst
+++ b/docs/theories/sets-and-relations.rst
@@ -20,8 +20,7 @@ The source code of these examples is available at:
Below is a short summary of the sorts, constants, functions and
-predicates. For more details, see
-`this paper at IJCAR 2016 <https://cvc4.github.io/publications/2016/BRBT16.pdf>`__.
+predicates. More details can be found in :cite:`BansalBRT17`.
For the C++ API examples in the table below, we assume that we have created
a `cvc5::api::Solver solver` object.
@@ -151,8 +150,7 @@ Example:
For reference, below is a short summary of the sorts, constants, functions and
predicates.
-For more details, see
-`this paper at CADE 2017 <https://cvc4.github.io/publications/2017/MRT+17.pdf>`__.
+More details can be found in :cite:`MengRTB17`.
+----------------------+----------------------------------------------+------------------------------------------------------------------------------------+
| | SMTLIB language | C++ API |
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback