poster start

This commit is contained in:
Guillaume Bury 2017-08-23 13:47:57 +02:00
parent 685f804c09
commit 09bd730ff5
6 changed files with 248 additions and 0 deletions

BIN
poster/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
poster/poster.pdf Normal file

Binary file not shown.

100
poster/poster.tex Normal file
View file

@ -0,0 +1,100 @@
\documentclass[portrait,a0,final]{a0poster}
\usepackage[utf8]{inputenc}
\usepackage[OT1]{fontenc}
\usepackage[french]{babel}
\usepackage{enumitem}
\usepackage{verbatim}
\usepackage{amsfonts, amsmath, amssymb, amsthm, dsfont}
\usepackage{listings}
\lstset{language=[Objective]Caml}
\usepackage{bussproofs}
\newcommand\typ[2]{\Gamma\vdash#1:#2}
\input{template_deducteam.tex}
\def\aez{\textsf{Alt-Ergo~Zero}}
\def\altergo{\textsf{Alt-Ergo}}
\def\ens{\textsf{ENS Paris-Saclay}}
\def\inria{\textsf{Inria}}
\def\lsv{\textsf{LSV}}
\def\msat{\textsf{mSAT}}
\def\opam{\textsf{opam}}
\begin{document}
\sffamily % Font Family
\postertitle
{\msat{}:~An~OCaml~SAT~Solver}
{Guillaume \textsc{Bury}}
{DEDUC$\vdash$EAM (INRIA) - LSV / CNRS\\
\Large \textcolor{black}{\texttt{guillaume.bury@inria.fr}}}
\begin{center}
\begin{multicols}{2}
\tblock{Introduction} % TODO
{
\vspace{0cm} % Pour pas se faire manger par le titre
\msat{} is a SAT solving library written in OCaml. It allows to solve the satisfiability
of propositional problems in clausal normal form, and produce either a propositional model,
or a resolution proof of the problem's unsatisfiability.
}
\tblock{Conflict Driven Clause learning}
{
\begin{description}
\item[Propagation] If there exists a clause $C = C' \lor a$, where
$C'$ is false in the partial model, then add $a \mapsto \top$ to
the partial model, and record $C$ as the reason for $a$.
\item[Decision] Take an atom $a$ which is not yet in the partial model,
and add $a \mapsto \top$ to the model.
\item[Conflict] A conflict is a clause $C$ that is false in the current partial
model.
\item[Analyze] Perform resolution between the analyzed clause and the reason
behind the propagation of its most recently assigned litteral, until
the analyzed clause is suitable for backumping
\item[Backjump] A clause is suitable for backjumping if its most recently
assigned litteral $a$ is a decision. We can then backtrack to before the
decision, and add the analyzed clause to the solver, which will then enable
to propagate $a \mapsto \bot$.
\item[SMT] Formulas using first-order theories can be handled using a theory.
Each formula propagated or decided is sent to the theory, which then
has the duty to check whether the conjunction of all formulas seen so
far is satisfiable, if not, it should return a theory tautology (as a clause),
that is not satisfied in the current partial model.
\end{description}
}
\columnbreak
\tblock{Problem example}
{
}
\cblock{Theory interface}
{
\lstinputlisting{theory_intf.ml}
}
\cblock{Proof management}
{
\lstinputlisting{proof_intf.ml}
}
\end{multicols}
\Large \msat{} is available on \opam{} and on github: \texttt{https://github.com/Gbury/mSAT}
\end{center}
\end{document}

17
poster/proof_intf.ml Normal file
View file

@ -0,0 +1,17 @@
type clause_premise =
| Hyp | Local | Lemma of lemma
| History of clause list
type proof = clause
and proof_node = {
conclusion : clause;
step : step;
}
and step =
| Hypothesis
| Assumption
| Lemma of lemma
| Duplicate of proof * atom list
| Resolution of proof * proof * atom
val expand : proof -> proof_node

View file

@ -0,0 +1,111 @@
\usepackage{multicol}
\usepackage[dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{tikz}
\usepackage[right=1cm,left=1cm,top=1cm,bottom=1cm]{geometry}
\setlength{\parindent}{0.0cm}
\renewcommand{\sfdefault}{lmss}
\definecolor{orangeinria}{RGB}{227,55,41} % Orange INRIA
\definecolor{color1}{RGB}{227,55,41} % Orange INRIA
\definecolor{color2}{RGB}{116,101,110} % Blue INRIA
\definecolor{orange}{RGB}{243,154,38}
\definecolor{red}{RGB}{226,0,38}
\definecolor{orange2}{RGB}{236,117,40}
\definecolor{grey}{RGB}{50, 50, 50}
% args: width, number, title, txt
\newcommand{\tblock}[2]{
% \addtocounter{nblock}{1}
\begin{tikzpicture}
\tikzstyle{txtblock}=[draw=grey,rounded corners=40pt]
\draw node (zou) [txtblock, text width=0.9 \columnwidth, inner sep=25pt, line width=5pt, text justified] {
\Large #2
};
\draw node () at (zou.north) [line width=10pt,inner sep=15pt,anchor=center,fill=white] {
\begin{Huge}
\textcolor{orangeinria}{\textbf{#1}}
\end{Huge}
};
\end{tikzpicture}
\vspace{10mm}
}
\newcommand{\cblock}[2]{
% \addtocounter{nblock}{1}
\begin{tikzpicture}
\tikzstyle{txtblock}=[draw=grey,rounded corners=40pt,fill=gray!10]
\draw node (zou) [txtblock, text width=0.9 \columnwidth, inner sep=25pt, line width=5pt, text justified] {
\Large #2
};
\draw node () at (zou.north) [line width=10pt,inner sep=15pt,anchor=center,fill=white] {
\begin{Huge}
\textcolor{orangeinria}{\textbf{#1}}
\end{Huge}
};
\end{tikzpicture}
\vspace{10mm}
}
\newcommand{\block}[1]{
% \addtocounter{nblock}{1}
\begin{tikzpicture}
\tikzstyle{txtblock}=[draw=grey,fill=gray!10]
\draw node (zou) [txtblock, text width=0.9 \columnwidth, inner sep=25pt, line width=4pt, text justified] {
\Large #1
};
\end{tikzpicture}
\vspace{10mm}
}
% args: title, authors, affiliation
\newcommand{\postertitle}[3]{
\begin{tikzpicture}
\draw node (titlebar) [inner sep=0cm,
inner ysep=10mm,
text width=\textwidth, fill=orangeinria] {
\hspace{0.2 \textwidth}
\begin{minipage}[c]{0.79 \textwidth}
\begin{center}
\begin{VeryHuge}
{\color{white} \bfseries
#1
}
\end{VeryHuge}
\end{center}
\end{minipage}
};
\draw node (authors) at (titlebar.south) [anchor=north, yshift=-5mm,
text width=\textwidth, inner xsep=0cm] {
\hspace{0.2 \textwidth}
\begin{minipage}[c]{0.79 \textwidth}
\begin{center}
\begin{huge}
\color{orangeinria}
\textbf{#2}
\vspace{5mm}
#3
\end{huge}
\end{center}
\end{minipage}
};
\node[xshift=0.1 \textwidth, yshift=-15mm] (logo) at (titlebar.west) {};
\foreach \s in {0, 0.25, ..., 2.5}
{
\node[xshift=\s mm, yshift=-\s mm,fill=grey,opacity=0.07,rounded corners=20pt,line width=2pt, minimum width=0.18 \textwidth, minimum height=0.18 \textwidth] () at (logo) {
};
}
\node[draw=grey,rounded corners=20pt,fill=white,line width=2pt, minimum width=0.18 \textwidth, minimum height=0.18 \textwidth] () at (logo) {
\includegraphics[width=0.16 \textwidth]{logo.jpg}
};
\end{tikzpicture}
}

20
poster/theory_intf.ml Normal file
View file

@ -0,0 +1,20 @@
type ('formula, 'proof) res =
| 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
val dummy : level
val backtrack : level -> unit
val current_level : unit -> level
val assume : (formula, proof) slice
-> (formula, proof) res
val if_sat : (formula, proof) slice
-> (formula, proof) res
end