Commit 7a11c67b by Martin Jonas

Going to bed

parent b31d2780
 ... ... @@ -8,11 +8,12 @@ This section introduces the notation used in the rest of this chapter. The exposition of the propositional logic is mainly based on the work of Nieuwenhuis et al.~\cite{NOT06}. The exposition of the first-order logic is based on works of Enderton~\cite{End01} and of Barrett et al.~\cite{BSST09}. Note that instead of following the approach of Enderton, we follow the approach of Barrett et al. and define the theory as a set of first-order \emph{structures}, rather than a set of first-order sentences. first-order logic is based mainly on works of Enderton~\cite{End01} and of Barrett et al.~\cite{BSST09}. Note that instead of following the approach of Enderton to the first-order theories, we follow the approach of Barrett et al. and define the theory as a set of first-order \emph{structures}, rather than a set of first-order sentences. \subsection{Propositional formulas, assignments, and satisfaction} \label{prelim:prop} ... ... @@ -21,7 +22,7 @@ Let $\P$ be a fixed finite set of propositional variables. For every variable $x \in \P$ there are two literals -- a \emph{positive literal} $x$ and a \emph{negative literal} $\overline{x}$. For a given literal $l$, we define $\neg l$ as $\overline{l}$ if $l = x$ for some variable $x$ and as $x$ if $l = \overline{x}$ for some variable a variable $x$ and as $x$ if $l = \overline{x}$ for a variable x. Literals $l$ and $\neg l$ are called \emph{complementary}. A \emph{clause} is a finite disjunction of literals. The empty clause is denoted by $\bot$. A formula in the \emph{conjunctive normal form} ... ... @@ -65,7 +66,7 @@ if $\varphi$ is satisfiable precisely if $\psi$ is satisfiable. A \emph{signature} $\Sigma$ consists of a set of \emph{function symbols} $\Sigma^f$, a set of \emph{predicate symbols} $\Sigma^p$, and for each of these symbols a non-negative number called its and for each of these symbols of a non-negative number called its \emph{arity}. Given a signature $\Sigma$, \emph{$\Sigma$-terms}, \emph{$\Sigma$-atoms}, \emph{$\Sigma$-literals}, \emph{$\Sigma$-clauses}, \emph{$\Sigma$-formulas}, and ... ... @@ -104,10 +105,10 @@ $\Sigma$-formula and $\Gamma$ is a set of $\Sigma$-formulas, we say that \emph{$\Gamma$ entails $\varphi$ in $\mathcal{T}$}, written $\Gamma \models_\mathcal{T} \varphi$, if every $\Sigma$-structure that satisfies all formulas in $\Gamma$ also satisfies $\varphi$. If $\emptyset \models_\mathcal{T} \varphi$ for a $\Sigma$-formula $\varphi$, the formula $\varphi$ is called \emph{$\mathcal{T}$-valid} or a \emph{theory lemma}. A set $\Gamma$ of $\Sigma$-formulas is called \emph{$\mathcal{T}$-inconsistent}, if $\emptyset \models_\mathcal{T} \varphi$, the formula $\varphi$ is called \emph{$\mathcal{T}$-valid} or a \emph{theory lemma}. A set $\Gamma$ of $\Sigma$-formulas is called \emph{$\mathcal{T}$-inconsistent}, if $\Gamma \models_{\mathcal{T}} \bot$. % If $\varphi$ ... ... @@ -141,8 +142,8 @@ simultaneous substitution of every free variable $x_i$ in $\varphi$ by the term $t_i$. In the rest of this chapter, we consider only theories for which the satisfiability of conjunctions of literals is decidable and we call any decision procedure for conjunctions of $\mathcal{T}$-literals a satisfiability of conjunctions of $\Sigma$-literals is decidable and we call any decision procedure for conjunctions of $\Sigma$-literals a $\mathcal{T}$-\emph{solver}. Moreover, if the signature or the theory is clear from the context, we drop the respective $\Sigma$- or $\mathcal{T}$- prefixes. ... ... @@ -184,8 +185,8 @@ in Enderton~\cite{End01}. \section{Propositional satisfiability} \label{sec:sat} A \emph{propositional satisfiability problem} (\sat) is, for a given formula $\varphi$ in \cnf, to decide whether it is satisfiable. The A \emph{propositional satisfiability problem} (\sat) is to decide for a given formula $\varphi$ in \cnf, whether it is satisfiable. The restriction to formulas in \cnf is without a loss of generality, as the Tseytin transformation can be used to transform every formula to an equisatisfiable formula in \cnf with only linear increase of its ... ... @@ -254,7 +255,7 @@ change the value of the last decision literal that occurs in the clause $C$. Note that this literal does not have to be the last decision literal in the search and therefore a bigger region of the search space can be ruled out from the search, as it is known not to contain any solution. There are multiple strategies of computing the contain any solutions. There are multiple strategies of computing the clausal reason for the conflict, but the majority of \cdcl based \sat solvers are using the \emph{first unique implication point} based learning scheme, which has been shown to produce small clauses in ... ... @@ -310,14 +311,14 @@ using Reduced Ordered \bdds, which represent Boolean functions combinations of the represented Boolean functions using the recursive procedure \texttt{Apply}~\cite{Bry86}. The main idea of symbolic \sat solvers is to convert a \cnf formula to the corresponding \robdd and check the root of the resulting \bdd. If the resulting \bdd has the root 0, the formula is unsatisfiable, and it is satisfiable otherwise. However, in order to keep the size of the \bdd small, it is necessary to existentially quantify the variables during the computation. This technique is known as \emph{early quantification}~\cite{HKB96}. A simplified symbolic \sat algorithm can be found for example in the survey of \sat solving by Darwiche and Pipatsriswat~\cite{DP09}. check the root of the resulting \bdd. If the resulting \bdd is equivalent to the \bdd for the constant $0$ function, the formula is unsatisfiable, and it is satisfiable otherwise. However, in order to keep the size of the \bdd small, it is necessary to existentially quantify the variables during the computation. This technique is known as \emph{early quantification}~\cite{HKB96}. A simplified symbolic \sat algorithm can be found for example in the survey of \sat solving by Darwiche and Pipatsriswat~\cite{DP09}. Look-ahead based algorithm, in contrast to the \cdcl, are employing expensive heuristics to guide the \dpll search to a satisfying ... ... @@ -370,11 +371,10 @@ Notable examples of decidable first-order theories include ternary function $\arwrite(a, i, v)$ interpreted as an array $a$ modified to contain the value $v$ on the index $i$; \item the theory of \emph{fixed-size bit-vectors}, in which the structure contains all bit-vectors as an universe, ordering relations according to the corresponding integers, and interpreted functions are bit-wise operations on the bit-vectors and modular arithmetic operations on the corresponding integers. This theory is in detail described in section \ref{sec:qfbv}. structure contains set of all bit-vectors as an universe, bit-wise and arithmetic functions on those bit-vectors, and ordering relations on the corresponding integers. This theory is in detail described in section \ref{sec:qfbv}. \end{itemize} For a detailed description of these theories and implementation of the respective $\mathcal{T}$-solvers, we refer the reader for example to the book of ... ... @@ -395,7 +395,7 @@ $\mathcal{T}$-satisfiable formula has a model, whose every sort has an infinite domain. Although almost all practically used theories are stably infinite, this is not true for inherently finite theories like the theory of bit-vectors. Therefore, variants of the theory combinations in which one of the theories does not have to be stably combination in which one of the theories does not have to be stably infinite have been proposed~\cite{TZ05, RRZ05, JB10}. \subsection{DPLL modulo theories} ... ... @@ -405,14 +405,14 @@ Most of the \smt approaches can be classified as \emph{eager} or is directly translated to an equivalent propositional formula and an off-the-shelf \sat solver is used to decide satisfiability of this formula. The eager \smt approach is implemented for example in the \smt solver \uclid, which supports the combination of the theory of uninterpreted functions and linear integer arithmetic~\cite{LS04}. \smt solver \uclid for the combination of the theory of uninterpreted functions and linear integer arithmetic~\cite{LS04}. On the other hand, the lazy \smt approach uses a \sat solver to reason about the Boolean structure of the formula and a specialized $\mathcal{T}$-solver to reason about conjunctions of $\mathcal{T}$-literals. There are two variants of the lazy approach to the \smt solving -- \emph{online} and \emph{offline}~\cite{FJOS03}. $\Sigma$-literals. There are two variants of the lazy approach to the \smt solving -- \emph{online} and \emph{offline}~\cite{FJOS03}. \paragraph{Offline approach} In the offline approach, the input formula $\varphi$ is first ... ... @@ -423,8 +423,8 @@ $\varphi^p$. If $\varphi^p$ is unsatisfiable, the input formula $\varphi$ is also unsatisfiable. On the other hand, if $\varphi^p$ is satisfiable, the \sat solver returns its propositional model $M^p$, and the $\mathcal{T}$-solver can be used to determine $\mathcal{T}$-satisfiability of the corresponding set of literals $M$. If the $\mathcal{T}$-solver decides $M$ to be $\mathcal{T}$-satisfiability of the corresponding set of $\Sigma$-literals $M$. If the $\mathcal{T}$-solver decides $M$ to be $\mathcal{T}$-satisfiable, the formula $\varphi$ is also $\mathcal{T}$-satisfiable. If the propositional model is not $\mathcal{T}$-satisfiable, the corresponding theory lemma $\neg M^p$ ... ... @@ -468,11 +468,11 @@ Simplify~\cite{Simplify}, Yices~\cite{Yices}, and Z3~\cite{Z3}. \subsection{Natural domain \smt} \label{ssec:natDomainSat} Although the separation of the propositional and theory reasoning in the \dpllt approach allows the solver to be modular, it can be also restricting in some cases. In particular, \dpllt-based solvers can not directly reason about values of first-order variables, but have to rely on the $\mathcal{T}$-solver guiding the search over Boolean valuations. While there are some techniques like \emph{splitting on \dpllt allows the solver to be modular, it can be also restricting in some cases. In particular, \dpllt-based solvers can not directly reason about values of first-order variables, but have to rely on the $\mathcal{T}$-solver guiding the search over Boolean valuations. While there are some techniques like \emph{splitting on demand}~\cite{BNOT06} , which allow the $\mathcal{T}$-solver to add new atoms to the formula and delegate the case splitting to the underlying \sat solver, their performance depends on the internal ... ... @@ -514,7 +514,7 @@ computed by the conflict analysis. In thus specified framework, an abstract domain can be replaced by an arbitrary domain that satisfies a certain set of requirements and this yields an abstract conflict-driven clause learning \acdcl algorithm using this particular domain. As an example, Brain et al. have using this particular domain. For example, Brain et al. have implemented the \fpacdcl solver for the floating point arithmetic using an abstract interval domain and have shown that on a certain class of formulas it significantly outperforms state-of the art \smt ... ... @@ -556,14 +556,15 @@ core. In the second approach each clause can be represented by a fresh selector variable and after a top level conflict, clauses whose selector variable appears in the final conflict clause are returned as an unsatisfiable core. Third approach consists in combination of an \smt solver with an external propositional core~\cite{CGS07}. \smt solver with an external propositional core extractor~\cite{CGS07}. A (Craig) interpolant for a pair of formulas $F$ and $G$ such that $F \wedge G$ is unsatisfiable is a formula $I$ such that $F \models_T I$, $G \wedge I$ is unsatisfiable, and all uninterpreted symbols in $I$ are contained in both $F$ and $G$. Following the work of Pudlák~\cite{Pud97} or and McMillan~\cite{McM05}, an interpolant for the pair $(F, G)$ over the theory $\mathcal{T}$ can be computed from a of Pudlák~\cite{Pud97} and McMillan~\cite{McM05}, an interpolant for the pair $(F, G)$ over the theory $\mathcal{T}$ can be computed from a resolution proof of unsatisfiability of $F \wedge G$ by using a combination of a propositional interpolating algorithm and a theory specific interpolation procedure, which computes interpolants of ... ... @@ -578,20 +579,18 @@ and uninterpreted functions~\cite{McM11}. The \emph{theory of fixed sized bit-vectors (\BV)} is a many-sorted first-order theory with infinitely many sorts $\sort{n}$ corresponding to bit-vectors of length $n$. The only predicate symbols in the \BV theory are $=$, $\leq_u$, and $\leq_s$, interpreted as equality, unsigned inequality of binary-encoded natural numbers, and signed inequality of integers in $2$'s complement representation, respectively. Function symbols in the theory are $+$, $\times$, $\div$, $\&$, $\mid$, $\oplus$, $\ll$, $\gg$, $\cdot$, $\extract{n}{p}$, interpreted as addition, multiplication, unsigned division, bit-wise and, bit-wise or, bit-wise exclusive or, left-shift, right-shift, concatenation, and extraction of $n$ bits starting from the position $p$, respectively. For the detailed description of the \BV theory syntax and semantics, see for example Hadarean's PhD thesis~\cite{Had15}. This section focuses on the problem of satisfiability of the quantifier-free fragment of the \BV theory, denoted \QFBV. The the full \BV logic is treated in the next section. theory are $\leq_u$ and $\leq_s$, interpreted as inequality of binary-encoded unsigned and signed integers, respectively. Function symbols in the theory are $+$, $\times$, $\div$, $\&$, $\mid$, $\oplus$, $\ll$, $\gg$, $\cdot$, $\extract{n}{p}$, interpreted as addition, multiplication, unsigned division, bit-wise and, bit-wise or, bit-wise exclusive or, left-shift, right-shift, concatenation, and extraction of $n$ bits starting from the position $p$, respectively. For the detailed description of the \BV theory syntax and semantics, see for example Hadarean's PhD thesis~\cite{Had15}. This section focuses on the problem of satisfiability of the quantifier-free fragment of the \BV theory, denoted \QFBV. The the full \BV logic is treated in the next section. Current state-of-the-art \smt solvers for the \QFBV logic rely on rewriting techniques used to simplify the formula during the ... ... @@ -599,8 +598,7 @@ preprocessing, and eager or lazy translation of the bit-vector formula to the equivalent propositional formula, which is subsequently solved by a \sat solver. The transformation of a bit-vector formula to the equivalent propositional formula is traditionally called \emph{bit-blasting}~\cite{Kro08}. \marginpar{TODO: Nepřidat odstavec o propagating-complete \cnf encodings?} More lazy approach to the \emph{bit-blasting}~\cite{Kro08}. More lazy approach to the bit-blasting is beneficial when the theory combination is required. For example, solvers Z3 and Yices apply bit-blasting to all operations except for the equality, which is handled by a specialized ... ... @@ -620,13 +618,13 @@ Although bit-blasting is highly efficient for most of practical problems, it can exhaust memory of the solver if the input formula contains complex arithmetic or variables with large bit-width. Several techniques that avoid the bit-blasting and work directly on the level of individual bit-vectors (\emph{word-level}) have been proposed to of individual bit-vectors (\emph{word level}) have been proposed to alleviate this problem. Some useful fragments of the bit-vector theory can be solved by specialized algorithms for deciding satisfiability. For example, conjunctions of literals in the \emph{core theory of bit-vectors} consisting of equality, concatenation and extraction, is decidable in consisting of equality, concatenation and extraction, are decidable in polynomial time by reduction to the theory of equality~\cite{CMR97, BS09}. Additionally, Babić and Musuvathi have described algorithms for solving linear and non-linear modular arithmetic, which can be ... ... @@ -709,13 +707,14 @@ industrial benchmarks and especially in benchmarks produced during a verification of programs in a single static assignment form, such as LLVM bit-code. With a slight abuse of notation which identifies interpreted function symbols with their intended interpretations, a simple definition of invertibility for binary function symbols, which can be easily generalized, is as follows. A binary function $f$ can be inverted with respect to its first argument if for every two values $a_i, a_o$ there exists a value $b$ such that $f(b,a_i) = a_o$. For example, as the addition is invertible with respect to its first argument, the formula With a slight abuse of notation which identifies function symbols with their intended interpretations, a simple definition of invertibility for binary function symbols is as follows. A binary function $f$ can be inverted with respect to its first argument if for every two values $a_i, a_o$ there exists a value $b$ such that $f(b,a_i) = a_o$. This definition can be easily generalized to functions of different arities. For example, as the addition is invertible with respect to its first argument, the formula $\varphi \equiv x + (y * y - 30 * z * y) = 0$ can be transformed to an equisatisfiable formula $v = 0$, where $v$ is a fresh variable, because $x$ is unconstrained in $\varphi$. Note that in contrast to ... ... @@ -736,7 +735,7 @@ multiple ways to choose quantifier instances that are sufficient to decide the satisfiability of the formula. For the bit-vector theory, the most widely used approach is the \emph{model-based quantifier instantiation}~\cite{GM09}, implemented in Z3, CVC4, and Yices, combined by heuristics as \emph{E-matching} or \emph{symbolic combined with heuristics as \emph{E-matching} or \emph{symbolic quantifier instantiation}~\cite{WHD13,Dut15}. Additionally, for dealing with quantifiers, CVC4 supports solving quantified formulas by \emph{counter-example guided quantifier instantiation}~\cite{RDKT15}. ... ... @@ -767,10 +766,10 @@ $\neg \widehat{\psi}$ is not satisfiable, then the structure $M$ is indeed a model of the formula $\forall x_1, x_2, \dots, x_n\,(\psi)$, therefore the entire formula is satisfiable and $M$ is its model. If $\neg \widehat{\psi}$ is satisfiable, we get values $v_1, \dots, v_n$ such that $\neg\widehat{\psi}[v_1, \dots, v_n]$ holds. To rule out $M$ as a model as the formula $\varphi$, the instance $\psi[v_1, \dots, v_n]$ of the quantified formula is added to the quantifier-free part, i.e.~the formula $\varphi$ is modified to such that $\neg\widehat{\psi}[v_1, \dots, v_n]$ holds. To rule out $M$ as a model of the input formula, the instance $\psi[v_1, \dots, v_n]$ of the quantified formula is added to the quantifier-free part, i.e.~the formula $\varphi$ is modified to $\varphi' ~\equiv~ \varphi \wedge \psi[v_1, \dots, v_n],$ ... ... @@ -833,7 +832,7 @@ studied and was shown to range from \NP-complete to of the bit-vector satisfiability problem differ in allowing uninterpreted functions, allowing quantifiers, and in encoding of the bit-widths (unary vs. binary). In the following, we follow the notation of Kováznai et al~\cite{KFB16} -- decision problems for notation of Kováznai et al.~\cite{KFB16} -- decision problems for quantifier-free fragments are denoted by the prefix QF\_, the combination with the theory of uninterpreted functions is denoted by the prefix UF, and the problems with unary and binary encoded ... ... @@ -874,7 +873,7 @@ results for these classes are summarized in table polynomial time reduction from QF\_BV1 to \sat, showing that QF\_BV1 is in NP. A similar reduction from BV1 to \qbf can show that BV is in \PSPACE. For lower bounds, \NP-hardness of QF\_BV1 follows from a simple reduction from \sat, by encoding each propositional variable as simple reduction from \sat by encoding each propositional variable as a bit-vector of bit-width 1. Similarly, BV1 can be shown to be \PSPACE-hard by considering every bit-vector as a quantified variable of bit-width 1. ... ...
 ... ... @@ -19,8 +19,8 @@ The benefit of a \bdd-based solver over the quantifier instantiation-based one is the ability of representing all models of a universally quantified formula even in cases in which finding a suitable set of quantifier instantiations would be infeasible. The following formula, in which all variables have bit-with 32 bits, shows this difference: following formula, in which all variables have bit-width 32 bits, shows this difference: \[ \varphi \equiv a=16 \cdot b \,+\, 16 \cdot c~\wedge~\forall (x : [32]) \, (a \not = 16 \cdot x). ... ... @@ -29,14 +29,15 @@ this difference: The \bdd-based solver can quickly compute the \bdd for the quantified subformula $\forall (x : [32]) \, (a \not = 16 \cdot x)$, which shows that at least one of the last 4 bits of the variable $a$ has to be $0$, i.e. the value of $a$ is not divisible by $16$. After conjoining $1$, i.e. the value of $a$ is not divisible by $16$. After conjoining this \bdd to the \bdd for $a=16 \cdot b \,+\, 16 \cdot c$, the formula is decided unsatisfiable, as the resulting \bdd has root $0$. On the other hand, if one considers only quantifier instantiations by the subterm of the input formula, exponentially many quantifier instances have to be added to the formula to show its unsatisfiability, as there is no subterm of $\varphi$ that can be instantiated as $x$ to yield an unsatisfiable quantifier-free formula. is decided unsatisfiable, as the resulting \bdd represents the constant $0$ function. On the other hand, if one considers only quantifier instantiations by the subterm of the input formula, exponentially many quantifier instances have to be added to the formula to show its unsatisfiability, as there is no subterm of $\varphi$ that can be instantiated as $x$ to yield an unsatisfiable quantifier-free formula. \subsection{Simplifications} ... ... @@ -57,7 +58,7 @@ distributed over disjunctions. Moreover, universal quantification can distribute over disjunctions in cases where the variable bound by the quantifier does not occur in one of the conjuncts. This leads to the following rule and its dual of the disjuncts. This leads to the following rule and its dual version, which is known as \emph{miniscoping}: \[ \forall x. \, (\varphi ~\vee~ \psi)~~\leadsto~~(\forall x . \, ... ... @@ -91,9 +92,9 @@ where $t$ is an arbitrary term that does not contain $x$. Ordering of \bdd variables is crucial for efficiency. The size of a \bdd can differ exponentially when choosing a different ordering. Therefore, besides well known methods of dynamic variable reordering during the computation, Q3B precomputes initial variable ordering, which is based on the dependencies among the variables in the formula. reordering during the computation, Q3B computes an initial variable ordering, which is based on the syntactic dependencies among the variables in the formula. We have implemented and compared three different initial orderings, which we denote $\leq_1, \leq_2, \leq_3$. ... ... @@ -297,7 +298,7 @@ formulas. \end{minipage}} \end{table} Recently, this results was confirmed by the \smt competition 2016 -- Recently, these results were confirmed by the \smt competition 2016 -- our solver is the winner of the quantified-bit vectors category. Table \ref{tbl:smtcomp} shows official results for this category. The benchmarks are divided into two groups, with \emph{known} and ... ... @@ -309,7 +310,7 @@ them in the shortest time. Moreover, Q3B can solve more benchmarks with unknown status than any of the other solvers. \section{Other areas of research} Outside the field of \smt solving, my research also consists in Outside the field of \smt solving, my research interests also include software verification. In this field, I have co-authored the following paper on the tool Symbiotic, which combines instrumentation, slicing and, symbolic execution to allow verification of a real-world ... ... @@ -324,7 +325,7 @@ code~\cite{CJSSV16}. Formulas Using Binary Decision Diagrams.}" In: Theory and Applications of Satisfiability Testing -- SAT 2016 -- 19th International Conference, Bordeaux, France, July 5-8, 2016, Proceedings. 2016, pp. 267-283 Proceedings. 2016, pp. 267-283~\cite{JS16} \smallskip I am the main author of the text of the paper. I have also ... ... @@ -335,7 +336,7 @@ code~\cite{CJSSV16}. Algorithms for the Construction and Analysis of Systems -- 22nd International Conference, TACAS 2016, Held as Part of the ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016, Proceedings, pp. 946-949 pp. 946-949~\cite{CJSSV16} \smallskip ... ...
 ... ... @@ -39,14 +39,9 @@ achieving this is adding support for \bdds to the solver \mcbv developed by Zeljić et al. The \bdd representation can be added to the currently used over-approximations by bit-patterns and arithmetic intervals. Moreover, a tighter cooperation is possible -- if a value of a variable is decided by during the \mcbv computation, it can be used to partially instantiate a quantified part of the formula, for which the \bdd will be computed. As the part of my PhD study, an implementation of a solver using the hybrid approach and its evaluation on the representative set of benchmarks is expected. The hybrid approach to quantified bit-vectors is the main aim of my PhD study. of a variable is decided during the \mcbv computation, it can be used to partially instantiate a quantified part of the formula, for which the \bdd will be computed. \subsection{Unconstrained variable propagation for quantified bit-vectors} ... ... @@ -70,7 +65,7 @@ be replaced by a simpler term regargless the parity of the value $k$. In particular, if $i$ is the largest number for which $2^i$ divides the constant $k$ and the unconstrained variable $x$ has bit-width $n$, the term $k \times x$ can be rewritten to $extract_0^{n-i}(x) \cdot 0^i$.. This approach can be also extended to $extract_0^{n-i}(x) \cdot 0^i$. This approach can be also extended to the multiplication of two variables from which one is unconstrained. I plan to investigate further extensions to the terms containing division and remainder operations and to publish a paper concerning ... ...
 ... ... @@ -26,7 +26,7 @@ % 1. Configure classicthesis for your needs here, e.g., remove "drafting" below % in order to deactivate the time-stamp on the pages % **************************************************************************************************** \PassOptionsToPackage{eulerchapternumbers,listings,drafting,dottedtoc, \PassOptionsToPackage{eulerchapternumbers,listings,dottedtoc, %floatperchapter,%linedheaders,% subfig,beramono,eulermath,minionprospacing}{classicthesis} % ******************************************************************** ... ...
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment