summaryrefslogtreecommitdiff
path: root/doc/libcvc4.3.in
blob: 279c1895462ee9f4ddfe893dace511fae845eccf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.\" Process this file with
.\" groff -man -Tascii libcvc4.3
.\"
.TH LIBCVC4 3 "@MAN_DATE@" "CVC4 release @VERSION@" "CVC4 Library Interfaces"
.SH NAME
libcvc4 \- a library interface for the CVC4 theorem prover
.SH SYNOPSIS

A small program like:

.RS
.nf
#include <iostream>
#include "expr/expr_manager.h"
#include "smt/smt_engine.h"

using namespace CVC4;

int main() {
  ExprManager em;
  SmtEngine smt(&em);
  Expr onePlusTwo = em.mkExpr(kind::PLUS,
                              em.mkConst(Rational(1)),
                              em.mkConst(Rational(2)));
  std::cout << language::SetLanguage(language::output::LANG_CVC4)
            << smt.getInfo("name")
            << " says that 1 + 2 = "
            << smt.simplify(onePlusTwo)
            << std::endl;

  return 0;
}
.fi
.RE

gives the output:

.RS
"cvc4" says that 1 + 2 = 3
.RE

.SH DESCRIPTION

The main classes of interest in CVC4's API are
.I ExprManager,
.I SmtEngine,
and a few related ones like
.I Expr
and
.I Type.

The
.I ExprManager
is used to build up expressions and types, and the
.I SmtEngine
is used primarily to make assertions, check satisfiability/validity, and extract models and proofs.

.SH "SEE ALSO"
.BR cvc4 (1),
.BR libcvc4parser (3)

Additionally, the CVC4 wiki contains useful information about the
design and internals of CVC4.  It is maintained at
.BR http://goedel.cs.stanford.edu/wiki/ .
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback