package msat
Library containing a SAT solver that can be parametrized by a theory
Install
Dune Dependency
Authors
Maintainers
Sources
v0.8.2.tar.gz
md5=c02d63bf45357aa1d1b85846da373f48
sha512=e6f0d7f6e4fe69938ec2cc3233b0cb72dd577bfb4cc4824afe8247f5db0b6ffea2d38d73a65e7ede500d21ff8db27ed12f2c4f3245df4451d02864260ae2ddaf
doc/src/msat.tseitin/Tseitin_intf.ml.html
Source file Tseitin_intf.ml
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
(**************************************************************************) (* *) (* Alt-Ergo Zero *) (* *) (* Sylvain Conchon and Alain Mebsout *) (* Universite Paris-Sud 11 *) (* *) (* Copyright 2011. This file is distributed under the terms of the *) (* Apache Software License version 2.0 *) (* *) (**************************************************************************) (** Interfaces for Tseitin's CNF conversion *) module type Arg = sig (** Formulas This defines what is needed of formulas in order to implement Tseitin's CNF conversion. *) type t (** Type of atomic formulas. *) val neg : t -> t (** Negation of atomic formulas. *) val fresh : unit -> t (** Generate fresh formulas (that are different from any other). *) val pp : Format.formatter -> t -> unit (** Print the given formula. *) end module type S = sig (** CNF conversion This modules converts arbitrary boolean formulas into CNF. *) type atom (** The type of atomic formulas. *) type t (** The type of arbitrary boolean formulas. Arbitrary boolean formulas can be built using functions in this module, and then converted to a CNF, which is a list of clauses that only use atomic formulas. *) val f_true : t (** The [true] formula, i.e a formula that is always satisfied. *) val f_false : t (** The [false] formula, i.e a formula that cannot be satisfied. *) val make_atom : atom -> t (** [make_atom p] builds the boolean formula equivalent to the atomic formula [p]. *) val make_not : t -> t (** Creates the negation of a boolean formula. *) val make_and : t list -> t (** Creates the conjunction of a list of formulas. An empty conjunction is always satisfied. *) val make_or : t list -> t (** Creates the disjunction of a list of formulas. An empty disjunction is never satisfied. *) val make_xor : t -> t -> t (** [make_xor p q] creates the boolean formula "[p] xor [q]". *) val make_imply : t -> t -> t (** [make_imply p q] creates the boolean formula "[p] implies [q]". *) val make_equiv : t -> t -> t (** [make_equiv p q] creates the boolena formula "[p] is equivalent to [q]". *) val make_cnf : t -> atom list list (** [make_cnf f] returns a conjunctive normal form of [f] under the form: a list (which is a conjunction) of lists (which are disjunctions) of atomic formulas. *) val pp : Format.formatter -> t -> unit (** [print fmt f] prints the formula on the formatter [fmt].*) end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>