mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-11 05:28:34 -05:00
First final draft of poster
This commit is contained in:
parent
e847c73cf9
commit
c1d00c21ca
4 changed files with 30 additions and 30 deletions
Binary file not shown.
|
|
@ -7,8 +7,10 @@
|
||||||
\usepackage{verbatim}
|
\usepackage{verbatim}
|
||||||
\usepackage{amsfonts, amsmath, amssymb, amsthm, dsfont}
|
\usepackage{amsfonts, amsmath, amssymb, amsthm, dsfont}
|
||||||
|
|
||||||
\usepackage{listings}
|
%\usepackage{listings}
|
||||||
\lstset{language=[Objective]Caml}
|
%\lstset{language=[Objective]Caml}
|
||||||
|
|
||||||
|
\usepackage{minted}
|
||||||
|
|
||||||
\usepackage{bussproofs}
|
\usepackage{bussproofs}
|
||||||
\newcommand\typ[2]{\Gamma\vdash#1:#2}
|
\newcommand\typ[2]{\Gamma\vdash#1:#2}
|
||||||
|
|
@ -77,19 +79,22 @@
|
||||||
\item Imperative design
|
\item Imperative design
|
||||||
\begin{itemize}[label=\checkmark]
|
\begin{itemize}[label=\checkmark]
|
||||||
\item 2-watch litteral
|
\item 2-watch litteral
|
||||||
\item Generative functors
|
|
||||||
\item Backtrackable theories (less demanding than immutable theories)
|
\item Backtrackable theories (less demanding than immutable theories)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item Features
|
\item Features
|
||||||
\begin{itemize}[label=\checkmark]
|
\begin{itemize}[label=\checkmark]
|
||||||
\item Functorized design
|
\item Generative functors
|
||||||
\item Local assumptions
|
\item Local assumptions
|
||||||
\item Model output
|
\item Model output and Proof output (Coq, dot)
|
||||||
\item Proof output (Coq, dot)
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
\cblock{Solver interface}
|
||||||
|
{
|
||||||
|
\inputminted{ocaml}{solver_intf.ml}
|
||||||
|
}
|
||||||
|
|
||||||
\tblock{Other solvers}
|
\tblock{Other solvers}
|
||||||
{
|
{
|
||||||
\\
|
\\
|
||||||
|
|
@ -119,6 +124,11 @@
|
||||||
\includegraphics[height=33cm]{proof}
|
\includegraphics[height=33cm]{proof}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
\cblock{Theory interface}
|
||||||
|
{
|
||||||
|
\inputminted{ocaml}{theory_intf.ml}
|
||||||
|
}
|
||||||
|
|
||||||
\tblock{Proof generation}
|
\tblock{Proof generation}
|
||||||
{
|
{
|
||||||
\begin{itemize}[label=\checkmark]
|
\begin{itemize}[label=\checkmark]
|
||||||
|
|
@ -127,7 +137,7 @@
|
||||||
\item Minimal impact on proof search (already done to compute
|
\item Minimal impact on proof search (already done to compute
|
||||||
unsat-core)
|
unsat-core)
|
||||||
\item Sufficient to rebuild the whole resolution tree
|
\item Sufficient to rebuild the whole resolution tree
|
||||||
\item A proof is a clause and proof nodes are lazily expanded \\
|
\item A proof is a clause and proof nodes are expanded on demand\\
|
||||||
$\rightarrow$ no memory issue
|
$\rightarrow$ no memory issue
|
||||||
\item Enables various proof output:
|
\item Enables various proof output:
|
||||||
\begin{itemize}[label=$\bullet$]
|
\begin{itemize}[label=$\bullet$]
|
||||||
|
|
@ -143,23 +153,17 @@
|
||||||
solvers & aez & mSAT & \begin{tabular}{c}minisat\\(minisat/sattools)\end{tabular} & \begin{tabular}{c}cryptominisat\\(sattools)\end{tabular} \\ \hline
|
solvers & aez & mSAT & \begin{tabular}{c}minisat\\(minisat/sattools)\end{tabular} & \begin{tabular}{c}cryptominisat\\(sattools)\end{tabular} \\ \hline
|
||||||
uuf100 (1000 pbs) & 0.125 & 0.012 & 0.004 & 0.006 \\ \hline
|
uuf100 (1000 pbs) & 0.125 & 0.012 & 0.004 & 0.006 \\ \hline
|
||||||
uuf125 (100 pbs) & 2.217 & 0.030 & 0.006 & 0.013 \\ \hline
|
uuf125 (100 pbs) & 2.217 & 0.030 & 0.006 & 0.013 \\ \hline
|
||||||
|
uuf150 (100 pbs) & TODO & TODO & TODO & TODO \\ \hline
|
||||||
pigeon/hole6 & 0.120 & 0.018 & 0.006 & 0.006 \\ \hline
|
pigeon/hole6 & 0.120 & 0.018 & 0.006 & 0.006 \\ \hline
|
||||||
pigeon/hole7 & 4.257 & 0.213 & 0.015 & 0.073 \\ \hline
|
pigeon/hole7 & 4.257 & 0.213 & 0.015 & 0.073 \\ \hline
|
||||||
pigeon/hole8 & 31.450 & 0.941 & 0.096 & 2.488 \\ \hline
|
pigeon/hole8 & 31.450 & 0.941 & 0.096 & 2.488 \\ \hline
|
||||||
pigeon/hole9 & \begin{tabular}{c}timeout\\(600)\end{tabular} & 8.886 & 0.634 & 4.075 \\ \hline
|
pigeon/hole9 & \begin{tabular}{c}timeout\\(600)\end{tabular} & 8.886 & 0.634 & 4.075 \\ \hline
|
||||||
pigeon/hole10 & \begin{tabular}{c}timeout\\(600)\end{tabular} & 161.478 & \begin{tabular}{c}9.579 (minisat)\\160.376 (sattools)\end{tabular} & 72.050 \\ \hline
|
pigeon/hole10 & \begin{tabular}{c}timeout\\(600)\end{tabular} & 161.478 & \begin{tabular}{c}9.579 (minisat)\\160.376 (sattools)\end{tabular} & 72.050 \\ \hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\\
|
|
||||||
\begin{center}
|
|
||||||
Done using https://github.com/Gbury/sat-bench.
|
|
||||||
\end{center}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
|
|
||||||
|
|
||||||
\Large \msat{} is available on \opam{} and on github: \texttt{https://github.com/Gbury/mSAT}
|
|
||||||
|
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
|
||||||
9
poster/solver_intf.ml
Normal file
9
poster/solver_intf.ml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
module Make(Th: Theory_intf)() : sig
|
||||||
|
type 'f sat_state = { eval : 'f -> bool; ... }
|
||||||
|
type ('c,'p) unsat_state =
|
||||||
|
{ conflict: unit -> 'c; proof : unit -> 'p }
|
||||||
|
type res = Sat of formula sat_state
|
||||||
|
| Unsat of (clause, proof) unsat_state
|
||||||
|
val assume : ?tag:int -> atom list list -> unit
|
||||||
|
val solve : ?assumptions:atom list -> unit -> res
|
||||||
|
end
|
||||||
|
|
@ -1,20 +1,7 @@
|
||||||
|
type ('f, 'p) res = Sat | Unsat of 'f list * 'p
|
||||||
type ('formula, 'proof) res =
|
type 'f slice = { start:int; length:int; get:int -> 'f }
|
||||||
| Sat | Unsat of 'formula list * 'proof
|
|
||||||
|
|
||||||
type ('form, 'proof) slice = {
|
|
||||||
start : int;
|
|
||||||
length : int;
|
|
||||||
get : int -> 'form;
|
|
||||||
push : 'form list -> 'proof -> unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
module type S = sig
|
module type S = sig
|
||||||
val dummy : level
|
|
||||||
val backtrack : level -> unit
|
val backtrack : level -> unit
|
||||||
val current_level : unit -> level
|
val current_level : unit -> level
|
||||||
val assume : (formula, proof) slice
|
val assume : formula slice -> (formula, proof) res
|
||||||
-> (formula, proof) res
|
|
||||||
val if_sat : (formula, proof) slice
|
|
||||||
-> (formula, proof) res
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue