!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !!""""""##$$$$$$%%%%&&&&&&''(((((()))))))))*********++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,, , , - - ------............. .!.".#.$.%.&.'/(/)/*/+/,/-/.///0/1/2/3/4/5/6/7/8/9/:/;/</=/>/?/@/A/B/C/D/E/F/G/H/I/J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~111111111111122223333333333333333333333333333333344455555555555566666666666777777777777777777777777789::;;;;;<==========================>>> > ? ? ? ??????????????????? ?!?"?#?$?%?&?'?(?)?*?+?,?-?.?/?0?1?2?3?4?5?6?7?8?9?:?;?<?=?>???@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`@a@bAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~AAAAAAABBCCDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEFFFFFFFFFFGGGGGGGGGGHHHHHHIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKLLLLLLLLMMNNOOPPPPPPPPP Q Q Q Q QQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ[Q\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzR{R|R}R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSTTTTTTTTTTTUUUUUUUUUUUUUUUUTTTVWXXXXXXXYZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\ \ ] ^ _ _`````abccccccccccc c!c"d#d$d%d&d'd(d)d*d+d,d-d.d/e0f1g2h3i4i5i6i7j8j9j:k;k<k=l>m?m@nAnBnCnDnEnFnGnHnInJnKnLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogohoiojokolomonooopoqorosptpupvqwqxqyqzq{q|q}q~qqqqqqqqqqqrrrrrrrrrrrrrrrrsssssttUUUUuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv v v v v vvvvvvvvvvvvvvwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-x.x/x0x1x2x3x4x5y6y7y8y9y:y;y<y=y>y?y@yAyByCyDyEyFyGyHyIyJyKyLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzz{z|z}z~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||}}}}}} } } } } ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneT(c) Masahiro Sakai 2012,2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone %&*:T (the block strcuture vector (bLOCKsTRUCT)Constant VectorConstraint Matrices %the number of primal variables (mDim)!the number of blocks (nBLOCK)&"Parse a SDPA format (.dat) string.' Parse a SDPA format file (.dat).(+Parse a SDPA sparse format (.dat-s) string.))Parse a SDPA sparse format file (.dat-s).& !"#$%&'()*+ !"#$%&'()*+ !"$#%*+&'()" !"#$%&'()*+(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe4existential quantifier5universal quantifier/0123456789:;<=/01234567:89;<=6789:;345210/<= /0123456789:;<=SafeH1Pseudo boolean constraint handler implimentation.%The default value can be obtained by .KBranching strategy.%The default value can be obtained by .M and N is based on [Liang et al 2016].J. Liang, V. Ganesh, P. Poupart, and K. Czarnecki, "Learning rate based branching heuristic for SAT solvers," in Proceedings of Theory and Applications of Satisfiability Testing (SAT 2016), pp. 123-140.  <http://link.springer.com/chapter/10.1007/978-3-319-40970-2_9 \https://cs.uwaterloo.ca/~ppoupart/publications/sat/learning-rate-branching-heuristic-SAT.pdfLCVSIDS (Variable State Independent Decaying Sum) branching heuristicM?ERWA (Exponential Recency Weighted Average) branching heuristicN'LRB (Learning Rate Branching) heuristicOLearning strategy.%The default value can be obtained by .RRestart strategy.%The default value can be obtained by .Y_The initial restart limit. (default 100) Zero and negative values are used to disable restart.ZcThe factor with which the restart limit is multiplied in each restart. (default 1.5) This must be >1.\nThe initial limit for learnt constraints. Negative value means computing default value from problem instance.]jThe limit for learnt constraints is multiplied with this factor periodically. (default 1.1) This must be >1. ^HControls conflict constraint minimization (0=none, 1=local, 2=recursive)`]step-size  in ERWA and LRB branching heuristic is initialized with this value. (default 0.4)anstep-size  in ERWA and LRB branching heuristic is decreased by this value after each conflict. (default 0.06)bestep-size  in ERWA and LRB branching heuristic is decreased until it reach the value. (default 0.06)c\inverse of the variable EMA decay factor used by LRB branching heuristic. (default 1 / 0.95)gQThe frequency with which the decision heuristic tries to choose a random variablei6Split PB-constraints into a PB part and a clause part.Example from minisat+ paper:-4 x1 + 4 x2 + 4 x3 + 4 x4 + 2y1 + y2 + y3 "e 4would be split into(x1 + x2 + x3 + x4 + z "e 1 (clause part)"2 y1 + y2 + y3 + 4 z "e 4 (PB part)Lwhere z is a newly introduced variable, not present in any other constraint. Reference:^N . Een and N. Srensson. Translating Pseudo-Boolean Constraints into SAT. JSAT 2:1 26, 2006.kAInverse of the variable activity decay factor. (default 1 / 0.95)l<Inverse of the constraint activity decay factor. (1 / 0.999)odefault value for  RestartFirst.pdefault value for  RestartInc.udefault value for LearntSizeFirst.vdefault value for  LearntSizeInc.wdefault value for CCMin.{See documentation of setPBSplitClausePart.<HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~7HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~7VWXYZ[\]^_`abcdefghijklRSTUmnOPQqrKLMNstHIJyzopuvw|}~x{HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeCombining two Maybe values using given function.is the number integral? , isInteger x = fromInteger (round x) == x fractional part ) fracPart x = x - fromInteger (floor x) (c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)Safe allocate too many intermediate . Therefore we use this optimized implementation instead. Many intermediate values in this implementation will be optimized away by worker-wrapper transformation and unboxing. (c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (CPP)Safe Filename of the executable (see  for details) any argumentsstandard inputAcallback function which is called when a line is read from stdoutAcallback function which is called when a line is read from stderr(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses)None9;<=   (c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (FlexibleContexts)None: (c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (BangPatterns, FlexibleContexts, ScopedTypeVariables)None:T%Get the internal representation array%Get the internal representation array%Get the internal representation array!Pre-allocate internal buffer for n elements. (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional[non-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, TypeSynonymInstances)None9;<=B 6Priority queue implemented as array-based binary heap.7Build a priority queue with default ordering ('(<)' of  class)$Build a priority queue with a given  less than operator.$Build a priority queue with a given  less than operator.CReturn a list of all the elements of a priority queue. (not sorted)*Remove all elements from a priority queue."Create a copy of a priority queue.:Get the internal representation of a given priority queue.:Get the internal representation of a given priority queue.!Pre-allocate internal buffer for n elements.!Pre-allocate internal buffer for [0..n-1] values.  (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalZnon-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, ScopedTypeVariables)None9;<=T 6Priority queue implemented as array-based binary heap.7Build a priority queue with default ordering ('(<)' of  class)$Build a priority queue with a given  less than operator.CReturn a list of all the elements of a priority queue. (not sorted)*Remove all elements from a priority queue."Create a copy of a priority queue.:Get the internal representation of a given priority queue.:Get the internal representation of a given priority queue.!Pre-allocate internal buffer for n elements.  (c) Masahiro Sakai 2016-2017 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneAT"AOperations for folding edge information along with a path into a r value.Fold vertex cost label r consists of three operations vertex -> a corresponds to an empty path,Edge vertex cost label -> a corresponds to a single edge, a -> a -> a# corresponds to path concatenation,and a -> r to finish the computation.Strict pair typepath data type. empty pathpath with single edgeconcatenation of two paths3Incoming edge data type (target vertex is implicit)3Outgoing edge data type (source vertex is implicit)Edge data type@Graph represented as a map from vertexes to their outgoing edges Source vertex Target vertexCost of a path Empty pathConcatenation of two pathsEdges of a path)Edges of a path, but in the reverse orderEdges of a path, but as Vertexes of a path,Vertexes of a path, but in the reverse orderVertex of a path, but as Fold a path using a given  operation.Project 7 into a monoid value and fold using monoidal operation.  Similar to  but a label$ is directly used as a monoid value. (Ignore contents and return a unit value.  Pairs two  into one that produce a tuple.  Construct a  value.Compute cost of a path. Get the first  of a path. Get the last / of a path. This is useful for constructing a parent map of a spanning tree.Bellman-Ford algorithm for finding shortest paths from source vertexes to all of the other vertices in a weighted graph with negative weight edges allowed.uIt compute shortest-paths from given source vertexes, and folds edge information along shortest paths using a given  operation.0Utility function for detecting a negative cycle.Dijkstra's algorithm for finding shortest paths from source vertexes to all of the other vertices in a weighted graph with non-negative edge weight.uIt compute shortest-paths from given source vertexes, and folds edge information along shortest paths using a given  operation.Floyd-Warshall algorithm for finding shortest paths in a weighted graph with positive or negative edge weights (but with no negative cycles).xIt compute shortest-paths between each pair of vertexes, and folds edge information along shortest paths using a given  operation.)     $Operation used to fold shotest pathsList of source vertexes vsOperation used to fold a cycle Result of   vs$Operation used to fold shotest pathsList of source vertexes$Operation used to fold shotest paths!     !     $     (c) Masahiro Sakai 2012, 2015 BSD-stylemasahiro.sakai@gmail.com provisionalCnon-portable (BangPatterns, ScopedTypeVariables, FlexibleInstances)None9;T An equation a = b represented as eithera = b orf(a1,a2) = a, f(b1,b2) = b where a1 = b1 and a2 = b2 has already been derived.Eqn1 cid a b c$ represents an equation "f(a,b) = c" Eqn0 cid a b represents an equation "a = b"\ !             "#$%&'(   ) *+,-./0 12  345678   9:    ! " # $ %;<=>? &@AB) !"#$%&'()*+,-./0123456789:;<=>?)!)(&'#$%"* +,-./0123456789:;>?=<> !             "#$%&'(   ) *+,-./0 12  345678   9:    ! " # $ %;<=>? &@AB(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.comunstablenon-portable (CPP)None 'R ( ) * + ,STUVWXYZ[\]^ -_`abcde$ "&'(78RSTUVWXYZ[\]^_`abcde$RS(&'" TVUWXYZ[\]^78_`abcde 'R ( ) * + ,STUVWXYZ[\]^ -_`abcde(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies, BangPatterns, DeriveDataTypeable, CPP)None09;<=?DRT1hMonic monomialsl Variable "x"n.Univariate polynomials over commutative ring rt'Options for pretty printing polynomials%The default value can be obtained by .z(Square-free factorization of polynomials{factor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..].|"Prime factorization of polynomials}factor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..].Content of a polynomial Primitive part of a polynomial"Polynomial over commutative ring r"total degree of a given polynomial&construct a polynomial from a constant+construct a polynomial from a list of terms*construct a polynomial from a singlet term list of terms3leading term with respect to a given monomial order:leading coefficient with respect to a given monomial order7leading monomial with respect to a given monomial orderPLook up a coefficient for a given monomial. If no such term exists, it returns 0.PLook up a coefficient for a given monomial. If no such term exists, it returns Nothing.Ya polynomial is called primitive if the greatest common divisor of its coefficients is 1. Formal derivative of polynomialsFormal integral of polynomials EvaluationSubstitution or bind"Transform polynomial coefficients.XTransform a polynomial into a monic polynomial with respect to the given monomial order.Convert  K[x,x1,x2, &] into  K[x1,x2, &][x].Multivariate division algorithmdivModMP cmp f [g1,g2,..] returns a pair  ([q1,q2, &],r) such thatf = g1*q1 + g2*q2 + .. + r and g1, g2, .. do not divide r.Multivariate division algorithm )reduce cmp f gs = snd (divModMP cmp f gs)&Eisenstein's irreducibility criterion.-Given a polynomial with integer coefficients P[x] = an x^n + .. + a1*x + a0J, it is irreducible over rational numbers if there exists a prime number p& satisfying the following conditions:p divides ai for i /= n,p does not divides an, andp^2 does not divides a0.Natural ordering x^0 < x^1 < x^2 ..: is the unique monomial order for univariate polynomials."division of univariate polynomials"division of univariate polynomials"division of univariate polynomialsGCD of univariate polynomialsLCM of univariate polynomialsExtended GCD algorithmpseudo divisionpseudo quotientpseudo reminderGCD of univariate polynomials'Is the number a root of the polynomial?Is the polynomial square free?Lexicographic orderReverse lexicographic order.Note that revlex is NOT a monomial order.Graded lexicographic order"Graded reverse lexicographic orderfgh .ijklmnopqrstuvwxyz{|}~ / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^`fghijklmnopqrstuvwxyz{|}~|fgh .ijklmnopqrstuvwxyz{|}~ / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^77(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneT(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalDnon-portable (BangPatterns, TypeSynonymInstances, FlexibleInstances)None9;USquare-free decomposition of univariate polynomials over a field of characteristic 0. _ _(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT$sugar strategy (not implemented yet)&Options for Grbner Basis computation.&The default option can be obtained by . ` a b c d e f g   ` a b c d e f g(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalYnon-portable (ScopedTypeVariables, BangPatterns, TypeSynonymInstances, FlexibleInstances)None9;THSquare-free decomposition of univariate polynomials over a finite field.1Berlekamp algorithm for polynomial factorization.8Input polynomial is assumed to be monic and square-free. h i h i(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional<non-portable (BangPatterns, ScopedTypeVariables, Rank2Types)NoneOT jf|^2 k l j m n k l j m n(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional6non-portable (TypeSynonymInstances, FlexibleInstances)None9;None9;(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone`fghijklmnopqrstuvwxyz{|}~b|}z{~nlmjgkhiiftuvwxyqrsopNone(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None  o p q r s t u v  o p q r s t u v(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone,MIP status with the following partial order: !doc-images/MIP-Status-diagram.png&SOS (special ordered sets) constraints/types of SOS (special ordered sets) constraintsType 1 SOS constraintType 2 SOS constraintrelational operators constraintobjective functionterms expressions4type for representing lower/upper bound of variables4type for representing lower/upper bound of variables variable!label"Problem+ convert a string into a variable, convert a variable into a string- looking up bounds for a variable.default bounds/default lower bound (0)0default upper bound (+")1 looking up bounds for a variablek      !"#$%&'()*+,-./012345 w6789:;<=>?@ABCDEFGHIJKLMNOPQRSTY      !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRST647484(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone *:DRT|vParse a string containing LP file data. The source name is only | used in error messages and may be the empty string.}%Parse a file containing LP file data.~LP file parserRender a problem into a string.= x y z|} { | } ~  ~  |}~|}~= x y z|} { | } ~  ~  (c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone *:DRTwParse a string containing MPS file data. The source name is only | used in error messages and may be the empty string.&Parse a file containing MPS file data.MPS file parser;    0    None<=?time limit in seconds#invoked when a solver output a line-invoked when a solver output a line to stderr  None<=(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone.Parse .lp or .mps file based on file extension%Parse a file containing LP file data.&Parse a file containing MPS file data.'Parse a string containing LP file data.(Parse a string containing MPS file data. f       !"#$%&'()*+,-./0123456789:;<  None   None<=!None:  "None<=#None  $None<=%None  &None<='None  (None<=None!)(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe&Lifted Bool type. It has three values , , .lifted true valuelifted false valueundefined truth value F lnot lTrue == lFalse lnot lFalse == lTrue lnot lUndef == lUndef  4 liftBool True == lTrue liftBool False == lFalse  a unliftBool lTrue == Just True unliftBool lFalse == Just False unliftBool lUndef == Nothing   *(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)Safe<=?FEvaluataion of something (e.g. expression or formula) under the model.A Model# is a map from variables to values.collecting free variablesMap from variablesSet of variables2Variables are represented as non-negative integers +(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)SafeDR  Delta r k: represents r + k for symbolic infinitesimal parameter .#symbolic infinitesimal parameter .Conversion from a base r value to Delta r.Extracts the real part..Extracts the  part.. version of  .  x/ returns the greatest integer not greater than x version of  .  x) returns the least integer not less than xIs this a integer?NThis is unsafe instance in the sense that only a proper real can be a divisor.XThis instance assumes the symbolic infinitesimal parameter  is a nilpotent with  = 0.  ,(c) Masahiro Sakai 2012-2015 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)Safe<=3types that can be combined with boolean operations.types that can be negated.    1132-(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe<= Disjunctive normal form list of conjunction of literals            .(c) Masahiro Sakai 2011-2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe<=formulas of first order logic+convert a formula into negation normal form !"#   !"#/(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalenon-portable (FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, UndecidableInstances)Safe9;<=?'Atomic formula).type class for constructing relational formula/.type class for constructing relational formula2relational operators9flipping relational operatorrel (flipOp op) a b is equivalent to  rel op b a:negating relational operatorrel (negOp op) a b is equivalent to notB (rel op a b);operator symbol<0evaluate an operator into a comparision function'()*+,-./0123456789:;<=>?@ABC'()+-*,./0125473689:;<=23456789:;<'(=/01)*+,-.'()*+,-./0123456789:;<=>?@ABC*4+4,4-404140(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses)Safe9;<=J"results of satisfiability checkingNAtomic formulaOArithmetic expressionsUsingle variable expressionV evaluate an O with respect to a JKLMNOPQRSTUVWXYZ[\]^@'()+-*,./0125473689:;<=JKLMNOQRSPTUVWOPQRSTUVNWJKLM JKLMNOPQRSTUVWXYZ[\]^1(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional[non-portable (TypeFamilies, TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses)Safe9;<=DRf$Atomic Formula of Linear ArithmeticsgnLinear combination of variables and constants. Non-negative keys are used for variables's coefficients. key l is used for constants.h(a mapping from variables to coefficientsi Create a Expr/ from a mapping from variables to coefficients.j"terms contained in the expression.k Create a Expr from a list of terms.l6Special variable that should always be evaluated to 1.nvariableoconstantpmap coefficients.qmap coefficients.r(evaluate the expression under the model.s(evaluate the expression under the model.vapplySubst1 x e e1 == e1[e/x]w'lookup a coefficient of the variable. $ coeff v e == fst (extract v e) x2lookup a coefficient of the variable. It returns Nothing$ if the expression does not contain v. 4 lookupCoeff v e == fmap fst (extractMaybe v e) y extract v e returns (c, e') such that e == c *^ v ^+^ e'zextractMaybe v e returns  Just (c, e') such that e == c *^ v ^+^ e' if e contains v, and returns Nothing otherwise.}%evaluate the formula under the model.applySubst1 x e phi == phi[e/x]1Solve linear (in)equation for the given variable. solveFor a v returns  Just (op, e) such that  Atom v op e is equivalent to a.compute bounds for a Expr with respect to  BoundsEnv.(efg hijklm nopq rstuvwxyz{ |}~7'()+-*,./0125473689:;<=efghijklmnopqrstuvwxyz{|}~!ghnojkhilmwxyzpqrstuv{f|}~e&efg hijklm nopq rstuvwxyz{ |}~2Safe3(c) Masahiro Sakai 2014-2015 BSD-stylemasahiro.sakai@gmail.com provisional]non-portable (MultiParamTypeClasses, DeriveDataTypeable, FlexibleContexts, FlexibleInstances)None09:;<=-Boolean expression over a given type of atoms       4None  5(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone Sturm's chain (Sturm's sequence) Sturm's sequence of a polynomial%The number of distinct real roots of p in a given interval%The number of distinct real roots of p+ in a given interval. This function takes p's sturm chain instead of p itself. KClosed interval that contains all real roots of a given polynomial. h90nPuL =http://aozoragakuen.sakura.ne.jp/taiwa/taiwaNch02/node26.htmlYDisjoint intervals each of which contains exactly one real roots of the given polynoimal p,. The intervals can be further narrowed by  or .YDisjoint intervals each of which contains exactly one real roots of the given polynoimal p,. The intervals can be further narrowed by  or . This function takes p's sturm chain instead of p itself.          6(c) Masahiro Sakai 2012-2016 BSD-stylemasahiro.sakai@gmail.com provisional.non-portable (Rank2Types, ScopedTypeVariables)NoneOTSGiven a polynomial P = _i a_i x^i over L/K where each a_i is a root of polynomial f a_i over K, rootSimpPoly f PO computes a polynomial Q over K such that roots of P is a subset of roots of Q.Given a polynomial P and polynomials {P1, &,Pn} over K, findPoly P [P1..Pn] computes a non-zero polynomial Q such that Q[P] = 0 modulo {P1, &,Pn}.    7(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (Rank2Types)NoneOTAlgebraic real numbers.0Real roots of the polynomial in ascending order.0Real roots of the polynomial in ascending order.-Returns approximate rational value such that %abs (a - approx a epsilon) <= epsilon.'Returns approximate interval such that +width (approxInterval a epsilon) <= epsilon. Same as  . Same as  . Same as  . Same as  . Same as  .The n th root of a9Same algebraic real, but represented using finer grained .5The polynomial of which the algebraic number is root.@Isolating interval that separate the number from other roots of  of it.+Whether the algebraic number is a rational.kWhether the algebraic number is a root of a polynomial with integer coefficients with leading coefficient 1 (a monic polynomial).Height of the algebraic number.The height of an algebraic number is the greatest absolute value of the coefficients of the irreducible and primitive polynomial with integral rational coefficients.root index, satisfying  ( a) !! rootIndex a == a  Golden ratio Degree of the algebraic number.If the algebraic number's  has degree n2, then the algebraic number is said to be degree n.&       aepsilonaepsilon     %            (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone                 8(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone9(c) Masahiro Sakai 2013,2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portable (OverloadedStrings)None:!(c) Masahiro Sakai 2013-2014,2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portable (OverloadedStrings)None    !    !;(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com experimentalportableSafe<(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone " "=!(c) Masahiro Sakai 2012-2014,2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portable (OverloadedStrings)NoneTranslation options.&The default option can be obtained by .& # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9>(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (ScopedTypeVariables, BangPatterns, FlexibleContexts)None:TGMaximize _{i=1}^n wi xi subject to _{i=1}^n wi xi "d c and xi " {0,1}.JNote: 0 (resp. 1) is identified with False (resp. True) in the assignment.EMinimize _{i=1}^n wi xi subject to _{i=1}^n wi x"e l and xi " {0,1}.JNote: 0 (resp. 1) is identified with False (resp. True) in the assignment. (Solve _{i=1}^n wi x = c and xi " {0,1}.zNote that this is different from usual definition of the subset sum problem, as this definition allows all xi to be zero.JNote: 0 (resp. 1) is identified with False (resp. True) in the assignment. weights [w1, w2 .. wn] capacity c(the objective value _{i=1}^n wi xi, andthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True). : ; < = > ? @weights [w1, w2 .. wn] l(the objective value _{i=1}^n wi xi, andthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True). weights [w1, w2 .. wn] lthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).    : ; < = > ? @ ?None9;<=?T# Add a parity constraint l1 " l2 " & " ln = rhs Add a soft parity constraint sel ! l1 " l2 " & " ln = rhs,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & "e n.,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & "e n.,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & = n.1Add a soft non-linear pseudo boolean constraints sel ! c1*ls1 + c2*ls2 + & "e n.1Add a soft non-linear pseudo boolean constraints sel ! c1*ls1 + c2*ls2 + & "d n.1Add a soft non-linear pseudo boolean constraints lit ! c1*ls1 + c2*ls2 + & = n.!Add a pseudo boolean constraints c1*l1 + c2*l2 + & "e n.!Add a pseudo boolean constraints c1*l1 + c2*l2 + & "d n.!Add a pseudo boolean constraints c1*l1 + c2*l2 + & = n.&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & "e n.&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & "d n.&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & = n.Add a cardinality constraints atleast({l1,l2,..},n). Add a cardinality constraints atmost({l1,l2,..},n).Add a cardinality constraints exactly({l1,l2,..},n)."Add a new variable#Add variables. %newVars a n = replicateM n (newVar a), but maybe faster.$Add variables. 'newVars_ a n = newVars a n >> return (), but maybe faster.% XOR clause.'([l1,l2..ln], b)' means l1 " l2 " " " ln = b. Note that:&True can be represented as ([], False)&False can be represented as ([], True).Disjunction of 1.1kPositive (resp. negative) literals are represented as positive (resp. negative) integers. (DIMACS format).2AA model is represented as a mapping from variables to its values.7=Variable is represented as positive integers (DIMACS format).9Restrict model to first nv variables.<7Construct a literal from a variable and its polarity.  A (resp  B*) means positive (resp. negative) literal.=Negation of the 1.>Underlying variable of the 1?Polarity of the 1.  A means positive literal and  B means negative literal.ANormalizing clause C! if the clause is trivially true.J normalizing PB term of the form c1 x1 + c2 x2 ... cn xn + c into d1 x1 + d2 x2 ... dm xm + d where d1,...,dm "e 1.K&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn >= b.L&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn = b.ZNormalize XOR clauseV     !"#$%&'()*+,-./0123456789:;<variablepolarity=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_S     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\S7658342910/:;<=>?@.ABCDE-,FGHI+*)(JKLMNOPQRSTUVWY'&X%Z[\!"#$     @     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@(c) Masahiro Sakai 2011-2015 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone` D Ea F G H I`a`a` D Ea F G H IA(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalgnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, ExistentialQuantification)None9;<=ATfEncoder instanceg'Arbitrary formula not restricted to CNFi Create a Encoder9 instance. If the encoder is built using this function, k has no effect.j Create a Encoder9 instance. If the encoder is built using this function, k has an effect.kUse pseudo boolean constraints or use only clausesB. This option has an effect only when the encoder is built using j.lKAssert a given formula to underlying SAT solver by using Tseitin encoding.o=Return an literal which is equivalent to a given conjunction.  encodeConj encoder = p encoder  peReturn an literal which is equivalent to a given conjunction which occurs only in specified polarity.q=Return an literal which is equivalent to a given disjunction.  encodeDisj encoder = r encoder  reReturn an literal which is equivalent to a given disjunction which occurs only in specified polarity.s>Return an literal which is equivalent to a given if-then-else.  encodeITE encoder = t encoder  tfReturn an literal which is equivalent to a given if-then-else which occurs only in specified polarity.uFReturn an literal which is equivalent to an XOR of given two literals.  encodeXOR encoder = v encoder  vnReturn an literal which is equivalent to an XOR of given two literals which occurs only in specified polarity.w$Return an "sum"-pin of a full-adder.  encodeFASum encoder = x encoder  xLReturn an "sum"-pin of a full-adder which occurs only in specified polarity.y&Return an "carry"-pin of a full-adder.  encodeFACarry encoder = z encoder  zNReturn an "carry"-pin of a full-adder which occurs only in specified polarity.,bcdef J K L M N O P Q Rghijkl Sm Tnopqrstuvwxyz{|}~bcdefghijklmnopqrstuvwxyz{|}~fijkbcde|}~ghlmnopqrstuvwxyz{ bcdef J K L M N O P Q Rghijkl Sm Tnopqrstuvwxyz{|}~B(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone:T U V W X U V W XC(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone:TD(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone:T Y Z [ \ ] ^ _ `   Y Z [ \ ] ^ _ `E(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalZnon-portable (BangPatterns, ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses)None9;<=T a b c    a b cF(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionaldnon-portable (ExistentialQuantification, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses)None9:;<=ATEncode a non-linear & into a lienar *.linearizePBSum enc s is equivalent to +linearizePBSumWithPolarity enc polarityBoth.Linearize a non-linear & into a lienar *. The input &0 is assumed to occur only in specified polarity.If polarityPosOccurs p, the value of resulting * is  greater than or equal to the value of original &.If polarityNegOccurs p, the value of resulting * is  lesser than or equal to the value of original &.  d e f    d e fGNoneDR  H(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone!Maximal Satisfiable Subset (MSS).~A subset S " C is an MSS if S is satisfiable and "C_i " U\S, S"*{C_i} is unsatisfiable [CAMUS]. A MSS is the complement of an .Satisfiable Subset (SS).IA subset S " C is a SS if S is satisfiable. A SS is the complement of a ./Minimal Correction Subset of constraints (MCS).A subset M " C is an MCS if C\M is satisfiable and "C_i " M, C\(M\{C_i}) is unsatisfiable [CAMUS]. A MCS is the complement of an  and also known as a CoMSS.&Correction Subset of constraints (CS).KA subset M " C is a CS if C\M is satisfiable. A CS is the complement of a .2Minimal Unsatisfiable Subset of constraints (MUS).]A subset U " C is an MUS if U is unsatisfiable and "C_i " U, U\{C_i} is satisfiable [CAMUS]. )Unsatisfiable Subset of constraints (US)./A subset U " C is an US if U is unsatisfiable. I(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional>non-portable (ScopedTypeVariables, BangPatterns, TypeFamilies)NoneDRT#number of variables of the problem.%number of constraints of the problem. g#number of edges of the factor graph3Get the marginal probability of the variable to be True, False and unspecified respectively./ h i j k l m n o p q r s t u v w x y z { | } ~ g   h i j k l m n o p q r s t u v w x y z { | } ~ g   }8JNone'     K(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonePrint a 2. in a way specified for SAT Competition. See  ,http://www.satcompetition.org/2011/rules.pdf for details.Print a 21 in a way specified for Max-SAT Evaluation. See  &http://maxsat.ia.udl.cat/requirements/ for details.Print a 29 in a way specified for Pseudo-Boolean Competition. See  .http://www.cril.univ-artois.fr/PB12/format.pdf for details.  L(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalInon-portable (FlexibleContexts, FlexibleInstances, MultiParamTypeClasses)None9:;<=   M(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental$non-portable (MultiParamTypeClasses)None<=  N(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone<=O(c) Masahiro Sakai 2013,2016 BSD-stylemasahiro.sakai@gmail.com experimental$non-portable (MultiParamTypeClasses)None<=PNone   Q(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalVnon-portable (BangPatterns, ScopedTypeVariables, CPP, DeriveDataTypeable, RecursiveDo)None -0<=BJT1 Ainvoked with the watched literal when the literal is falsified. watch 0g  toConstraint+ 0T|0sQ0W0f heap allocation 0Lvzu0Y00n0 0Q00_00k0QC0n   0n!0W0f0J0O0 deduce a clause C"(l from the constraint and return C. C and l should be false and true respectively under the current assignment. Solver instance "Amount to bump next variable with. $Amount to bump next constraint with. step-size parameter  .will be invoked when this literal is falsified 2will be invoked once when the variable is assigned #exponential moving average estimate When v was last assigned IThe number of learnt clauses v participated in generating since Assigned. EThe number of learnt clauses v reasoned in generating since Assigned.Dit returns a set of literals that are fixed without any assumptions. FRegister the constraint to be notified when the literal becames false. ERegister the constraint to be notified when the variable is assigned.#number of variables of the problem.#number of variables of the problem. number of assigned number of assigned variables.number of constraints.number of constraints.number of learnt constrints.number of learnt constrints. Create a new   instance. Create a new  % instance with a given configulation.!Pre-allocate internal buffer for n variables. See documentation of 4.Solve constraints. Returns  A) if the problem is SATISFIABLE. Returns  B! if the problem is UNSATISFIABLE.-Solve constraints under assuptions. Returns  A) if the problem is SATISFIABLE. Returns  B! if the problem is UNSATISFIABLE.Cancel exectution of  or .&This can be called from other threads. After 3 returns True, it returns an satisfying assignment.!After  returns False, it returns a set of assumptions that leads to contradiction. In particular, if it returns an empty set, the problem is unsatisiable without any assumptions."EXPERIMENTAL API: After  returns True or failed with  J exception, it returns a set of literals that are implied by assumptions. NSimplify the constraint database according to the current top-level assigment.'_The initial restart limit. (default 100) Zero and negative values are used to disable restart.(TThe factor with which the restart limit is multiplied in each restart. (default 1.5) This must be >1.*%The initial limit for learnt clauses.CNegative value means computing default value from problem instance.+WThe limit for learnt clauses is multiplied with this factor each restart. (default 1.1) This must be >1.,?Controls conflict clause minimization (0=none, 1=basic, 2=deep)-#The default polarity of a variable./QThe frequency with which the decision heuristic tries to choose a random variable0:Set random generator used by the random variable selection1:Get random generator used by the random variable selection46Split PB-constraints into a PB part and a clause part.Example from minisat+ paper:-4 x1 + 4 x2 + 4 x3 + 4 x4 + 2y1 + y2 + y3 "e 4would be split into(x1 + x2 + x3 + x4 + z "e 1 (clause part)"2 y1 + y2 + y3 + 4 z "e 4 (PB part)Lwhere z is a newly introduced variable, not present in any other constraint. Reference:\N. En and N. Srensson. Translating Pseudo-Boolean Constraints into SAT. JSAT 2:1 26, 2006.5See documentation of 4. ?Revert to the state at given level (keeping all assignment at level but not beyond). ?invoked with the watched literal when the literal is falsified. deduce a clause C"(l from the constraint and return C. C and l should be false and true respectively under the current assignment.=-set callback function for receiving messages.@                                ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7  8 9  Assumptions : ; !" < = > ?#$%&'()*+,-./0123456789:; @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s< t u v w x y z { | } ~  = >?@ABCDEFGHIJKLMNOPQRSTUVWHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    $#"%()*+,-.12347<=>?@DHIRST\      !"#$%&'()*+,-./0123456789:;<=a 71<=>?@"#$ .D-,HI+*)(RST   %\<    342 !"#$%-=012&'(*+,)6789:;./345               $                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7  8 9  : ; !" < = > ?#$%&'()*+,-./0123456789:; @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s< t u v w x y z { | } ~  = >?@ABCDEFGHIJKLMNOPQRSTUVWR(c) Masahiro Sakai 2012, 2015 BSD-stylemasahiro.sakai@gmail.com provisionalunon-portable (TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables, MultiParamTypeClasses, OverloadedStrings)None9;<=T bElement of model.  Shallow atom  Shallow termsTermv3Generalized literal type parameterized by atom typeyPredicate SymbolzFunction Symbol{Variable|.normalize a formula into a skolem normal form.TODO:Tseitin encoding} print entityU\]^_` ab cdefghijklmnopqrstuvwx yz{ | } ~ +\]^`_abcdighefjklmnopqrstuvwxyz{|}~+{zyvwxstuqrponcdefghijklm|\]^_`ba~}=\]^_` ab   c defghijklmnopqrstuvwx  yz{ | } ~ S(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None"Naive Algorithm for a Winning MoveBAbstraction-Based Algorithm for a Winning Move .Abstraction-Based Algorithm for a Winning Move   345 345   (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalNoneOptions for MUS finding.%The default value can be obtained by .Because each soft constraint C_i' is represented as a selector literal l_i! together with a hard constraint  l_i ! C_i1, there are cases that a model assigns false to l_i even though C_i^ itself is true. This function is used to inform the truth value of the original constraint C_i+ that corresponds to the selector literal l_i.   (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone dFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from !.   None`MCS candidates (see HYCAM paper for details). A MCS candidate must be a superset of a real MCS.Because each soft constraint C_i' is represented as a selector literal l_i! together with a hard constraint  l_i ! C_i1, there are cases that a model assigns false to l_i even though C_i^ itself is true. This function is used to inform the truth value of the original constraint C_i+ that corresponds to the selector literal l_i.   (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone dFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from !.   (c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone dFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from !.   T(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNonedFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from !.V(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone  W(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone     X(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneOptions for BCD2 algorithm.%The default value can be obtained by . .The smallest integer greater-than or equal-to n- that can be obtained by summing a subset of wsG. Note that the definition is different from the one in Morgado et al. -The greatest integer lesser-than or equal-to n- that can be obtained by summing a subset of ws.    ws n  ws n    Y(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone  Z(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None  [(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneOptimization method%The default value can be obtained by .,  !!  \(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional2non-portable (FlexibleContexts, OverloadedStrings)None:      ](c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone    ^(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone    _(c) Masahiro Sakai 2017 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone           `(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalInon-portable (FlexibleContexts, FlexibleInstances, MultiParamTypeClasses)None9:;<=  a(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental6non-portable (FlexibleContexts, MultiParamTypeClasses)None:<=uConvert a pseudo boolean formula  to a equisatisfiable CNF formula  together with two functions f and g such that:if M "  then f(M) " if M "  then g(M) " b(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental6non-portable (FlexibleContexts, MultiParamTypeClasses)None:<=c(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portable (OverloadedStrings)None  !  ! !   !d(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone"BWeigths must be greater than or equal to 1, and smaller than 2^63."#$%&'()*+ ,-. "#$%&')(*+,-. $%&'()#"*+,.- "#$%&'()*+ ,-.e(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone////f(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone0000g(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone1111h(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental6non-portable (FlexibleContexts, MultiParamTypeClasses)None:<=2222i(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT3456345635643456j(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT789 789879789 k(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeT:;<:;<;:<:;<l(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe====m(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe>? >?>?>? (c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone   n(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable)Safe0BOptions for solving.&The default option can be obtained by . @ABCDEFGH IJ @ABCDEFGH BCDEFG@AH@ABCDEFGH IJo(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableSafe9;<=?D X&A problem is essentially a pair of an IntSet (universe ) and a monotone pure function IntSet -> Bool ( isInterestingF), but we generalize a bit for potentialial optimization opportunity."For simple cases you can just use V instance.Z-Interesting sets are lower closed subsets of Y , i.e. if xs is interesting then ys " xs is also interesting.[If xs is interesting it returns InterestingSet ys where ys is an interesting superset of xs. If xs is uninteresting it returns UninterestingSet ys where ys is an uninteresting subset of xs.\grow xs" computes maximal interesting set ys that is a superset of xs.] shrink xs$ computes minimal uninteresting set ys that is a subset of xs.^If xs is an interesting set maximalInterestingSet prob xs returns Just ys such that ys& is a maximal interesting superset of xs, otherwise it returns Nothing._If xs is an uninteresting set minimalUninterestingSet prob xs returns Just ys such that ys& is a minimal uninteresting subset of xs, otherwise it returns Nothing.`If xs is an uninteresting set 6minimalUninterestingSetOrMaximalInterestingSet prob xs returns Left ys such that ys& is a minimal uninteresting subset of xs. If xs is an interesting set 6minimalUninterestingSetOrMaximalInterestingSet prob xs returns Right ys such that ys& is a maximal interesting superset of xsdDefault implementation of \ using [.eDefault implementation of ] using [.fDefault implementation of maximalUninterestingSet using [ and \.gDefault implementation of _ using [ and ].hDefault implementation of ` using [, ] \.LMNOPQRSTUVWXYZ[\]^_`abcdefghijLMNOPQRSTUVWX\YZ[]^_`abcdefghXYZ[\]^_`abcdefghVWOPQRSTULMN LMNOPQRSTUVWXYZ[\]^_`abcdefghijp(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone9:;<=?TsdGiven a problem and an option, it computes maximal interesting sets and minimal uninteresting sets.tBCompute the irredundant CNF representation and DNF representation.Let f6 be a monotone boolean function over set of variables S. This function returns C and D[ where "'_{I"C} "(_{i"I} x_i and "(_{I"D} "'_{i"I} x_i are the irredundant CNF representation f and DNF representation of f respectively.stSet of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of fu LMNOPQRSTUVWX\YZ[]^_`abcdefghstustustu q(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable)Safe0{Options for solving.&The default option can be obtained by .vwxyz{|}~  vwxyz{|~} {|}~xyzvwvwxyz{|}~ r(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe xhi n ** xhi n == nFind xs such that xs  (f,g) unless  f g. F tests whether F contains redundant implicants..Removes redundant implicants from a given DNF.occurFreq x F computes |{I"F | x"I}| / |F|areDualDNFs f g/ checks whether two monotone boolean functions f and g are mutually dual (i.e. f(x1, &,xn) = g(x1, &,xn)).?Note that this function does not care about redundancy of DNFs. Complexity:  O(n^o(log n)) where n =   f +   g. Synonym for .checkDualityA f g/ checks whether two monotone boolean functions f and g are mutually dual (i.e.L f(x1, &,xn) = g(x1, &,xn)) using Algorithm A  of [FredmanKhachiyan1996].,If they are indeed mutually dual it returns Nothing, otherwise it returns Just csi such that {xi ! (if xi"cs then True else False) | i"{1 &n}} is a solution of f(x1, &,xn) = g(x1, &,xn)).?Note that this function does not care about redundancy of DNFs. Complexity: O(n^O(log^2 n)) where n =   f +   g.checkDualityB f g/ checks whether two monotone boolean functions f and gc are mutually dual (i.e. f(x1, &,xn) = g(x1, &,xn)) using Algorithm B  of [FredmanKhachiyan1996].,If they are indeed mutually dual it returns Nothing, otherwise it returns Just csh such that {xi ! (if xi"cs then True else False) | i"{1 &n}} is a solution of f(x1, &,xn) = g(x1, &,xn)).?Note that this function does not care about redundancy of DNFs. Complexity:  O(n^o(log n)) where n =   f +   g.     a variable xa DNF Fa monotone boolean function f given in DNFa monotone boolean function g given in DNFa monotone boolean function f given in DNFa monotone boolean function g given in DNF a monotone boolean function f given in DNFa monotone boolean function g given in DNF       s(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeTdGiven a problem and an option, it computes maximal interesting sets and minimal uninteresting sets.(Find a new prime implicant or implicate.Let f6 be a monotone boolean function over set of variables SZ. Let "'_{I"C} "(_{i"I} x_i and "(_{I"D} "'_{i"I} x_i be the irredundant CNF representation f and DNF representation of f respectively.Given a subset C' " C and D' " D,  S f C' D' returns Just (Left I) where I " C \ C',Just (Right I) where J " D \ D', orNothing if C'=C and D'=D.BCompute the irredundant CNF representation and DNF representation.Let f6 be a monotone boolean function over set of variables S. This function returns C and D[ where "'_{I"C} "(_{i"I} x_i and "(_{I"D} "'_{i"I} x_i are the irredundant CNF representation f and DNF representation of f respectively.Set of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of fSet of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of f        "LMNOPQRSTUVWX\YZ[]^_`abcdefgh        t(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableSafe9;<=?DTdGiven a problem and an option, it computes maximal interesting sets and minimal uninteresting sets.BCompute the irredundant CNF representation and DNF representation.Let f6 be a monotone boolean function over set of variables S. This function returns C and D[ where "'_{I"C} "(_{i"I} x_i and "(_{I"D} "'_{i"I} x_i are the irredundant CNF representation f and DNF representation of f respectively.Set of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of fLMNOPQRSTUVWX\YZ[]^_`abcdefghU(c) Masahiro Sakai 2012-2016 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)None<=     u(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental0non-portable (ScopedTypeVariables, BangPatterns)SafeT [Augmenting path b_0, a_0, &, b_n, a_n is represented as ([(a_n, b_n) .. (a_0, b_0)], b_0). vAlternating path b_0, a_0, &, b_{n-1}, a_{n-1}, b_n is represented as (b_n, [(a_{n-1}, b_{n-1}) .. (a_0, b_0)], b_0).;Maximum cardinality matching on a bipartite graph (A+B, E). FInternal low-level routine for maximum cardinality bipartite matching.It returns a maximum cardinality matching M together with sets of vertexes reachable from exposed B vertexes (b"B such that "a"A. (a,b)" M) on a directed graph (A+B, {a!b|(a,b)"M}"*{b!a|(a,b)"E\M}).@Maximum weight matching of a complete bipartite graph (A+B,AB).5Maximum weight matching of a bipartite graph (A+B,E). HMaximum weight maximum matching of a complete bipartite graph (A+B,AB).HMaximum weight perfect matching of a complete bipartite graph (A+B,AB).+The two sets must be same size (|A| = |B|).HMinimum weight perfect matching of a complete bipartite graph (A+B,AB).+The two sets must be same size (|A| = |B|).FMaximum weight perfect matching of a complete bipartite graph (A+B,E).&If no such matching exist, it returns Nothing.>Minimum weight perfect matching of a bipartite graph (A+B, E).&If no such matching exist, it returns Nothing.;Minimum cardinality edge cover of bipartite graph (A+B, E).6Minimum weight edge cover of bipartite graph (A+B, E).AMinimum weight edge cover of complete bipartite graph (A+B, AB).  vertex set A vertex set Bset of edges E"AB  vertex set B:set of edges E"AB represented as a mapping from B to 2^A.@partial matching represented as an injective mapping from A to B vertex set A vertex set Bweight of edges AB vertex set A vertex set Bedges E"AB and their weights  vertex set A vertex set Bweight of edges AB vertex set A vertex set Bweight of edges AB vertex set A vertex set Bweight of edges AB vertex set A vertex set Bedges E"AB and their weights vertex set A vertex set Bedges E"AB and their weights vertex set A vertex set B edges E"AB vertex set A vertex set Bedges E"AB and their weights vertex set A vertex set Bweight of edges AB     v(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalNone:<=DR\ e'()+-*,./0125473689:;<=N!  w(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalNone:T.                 !"#$ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4  !"#$  !"#$"                 !"#$ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4Noneo'()+-*,./0125473689:;<= !"#$x(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone -Quantifier-free formula of LRA.. M  returns whether  M "_LRA  or not.// x  returns  (, lift) such that:"_LRA "y1, &, yn. ("x. ) !  where {y1, &, yn} = FV() \ {x}, andif  M "_LRA  then  lift M " .00 {x1, &,xm}  returns  (, lift) such that:%"_LRA "y1, &, yn. ("x1, &, xm. ) !  where {y1, &, yn} = FV() \ {x1, &,xm}, andif  M "_LRA  then lift M "_LRA .11 x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LRA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LRA _i then lift_i M "_LRA . 51 x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LRA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LRA _i then lift_i M "_LRA . Note that ("x. (x)) ! "(_{t"S} (t) where  = {a_i x - b_i _i 0 | i " I, _i " {=, "`, "d, <}} the set of atomic subformulas in (x) S = { b_i / a_i, b_i / a_i + 1, b_i / a_i - 1 | i"I } "* {1/2 (b_i / a_i + b_j / a_j) | i,j"I, i"`j}22 {x1, &,xm}  returns ![(_1, lift_1), &, (_n, lift_n)] such that:+"_LRA "y1, &, yp. ("x. ) ! (_1 "( & "( _n) where {y1, &, yp} = FV() \ {x1, &,xm}, andif  M "_LRA _i then lift_i M "_LRA .33 {x1, &,xn}  returns Just M such that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.44 {x1, &,xn}  returns Just M such that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.-./01 52 6 7 8 9 :34 -./01234 -./01243-./01 52 6 7 8 9 :34y(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT6Non-basic variables7Basic variables<Lookup a row by basic variable$ ; < = > ? @ A B56789:;< C D=> E?@ABC FD GE HF IG JH56789:;<=>?@ABCDEFGH87659:;<=>?@BCDEFGAH ; < = > ? @ A B56789:;< C D=> E?@ABC FD GE HF IG JHz(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalynon-portable (ScopedTypeVariables, Rank2Types, TypeOperators, TypeSynonymInstances, FlexibleInstances, TypeFamilies, CPP)None 9;DOQRTNOptions for solving.&The default option can be obtained by .Qresults of optimization K=A natural transformation suitable for storing in a container. LA natural transformation from f to g. M0feasibility 0O0a0d0d non-basic variable xj 0nP$0Y'0M0O0Y0 N0feasibility 0O0a0d0d non-basic variable xj 0nP$0\0U0O0Y0-set callback function for receiving messages.LMNOPQRSTU O P Q RVWXYZ[\]^_`ab S T U V W X Y Z [ \ ] ^ _ ` ac K b c L ddefgh eij f g hklmnopqrstuv iwxyz{|}~ j k l m n o M N p q r s t u v w x y z { | } ~   T,*-+02547368fLMNOPQTSRUVWXYZ[\]_^`abcdefghijklmnopqrstuvwxyz{|}~a`ab\]^_deck2345678*+,-*+,-0*+,-*+,-f[Zlmnoqrstuvwx~ijNOPQRSTUL_Myz{|}YfgVWXhpcLMNOPQRSTU O P Q RVWXYZ[\]^_`ab S T U V W X Y Z [ \ ] ^ _ ` ac K b c L ddefgh eij f g hklmnopqrstuv iwxyz{|}~ j k l m n o M N p q r s t u v w x y z { | } ~    K0 c0 L0{(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone LQTSRU LQRSTU|(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.comunstablexnon-portable (MultiParamTypeClasses, FlexibleInstances, DeriveDataTypeable, CPP, OverloadedStrings, ScopedTypeVariables)None 09;<=T Sort symbols<Constraints that cannot represented as function definitions.For example, zero-division result values cannot be specified by function definition, because division is interpreted function.         88W             }(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional.non-portable (ScopedTypeVariables, Rank2Types)NoneOT -set callback function for receiving messages.                         ~(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalMnon-portable (TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses)Safe9;<= Atomic constrainte "e 0e > 0e = 0'(t,c) represents t/c, and c must be >0.Simplify conjunction of s. It returns  C" when a inconsistency is detected. x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LRA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LRA _i then lift_i M "_LRA . {x1, &,xm}  returns ![(_1, lift_1), &, (_n, lift_n)] such that:+"_LRA "y1, &, yp. ("x. ) ! (_1 "( & "( _n) where {y1, &, yp} = FV() \ {x1, &,xm}, andif  M "_LRA _i then lift_i M "_LRA .!! {x1, &,xn}  returns Just M that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}."    !" #$  !"  !"    !" #$Safe(( {x1, &,xm}  returns Sat M such that  M "_LRA  when such M exists,returns Unsat when such M does not exists, andreturns Unknown when  is beyond LRA.)EEliminate quantifiers and returns equivalent quantifier-free formula.)  returns  (, lift) such that:# is a quantifier-free formula and LRA " "y1, &, yn.  !  where {y1, &, yn} = FV() " FV(), andif  M "_LRA  then lift M "_LRA .% may or may not be a closed formula.()* ()*()*()* (c) Masahiro Sakai 2014-2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone+optimize dir obj  returns  (I, lift) whereI' is convex hull of feasible region, andlift is a function, that takes x " I8 and returns the feasible solution with objective value better than or equal to x.Note:  i (resp.   iD) is the optimal value in case of minimization (resp. maximization).If I* is empty, then the problem is INFEASIBLE.+ +++ (c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe !() )(!(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalMnon-portable (TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses)Safe9;<= '(t,c) represents t/c, and c must be >0. Atomic constraint e "e 0 e = 0,Options for solving.&The default option can be obtained by ..EoptCheckReal is used for checking whether real shadow is satisfiable.If it returns True0, the real shadow may or may not be satisfiable.If it returns False', the real shadow must be unsatisfiable11 opt {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.22 {x1, &,xn}  I returns Just M that  M "_LIRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.I7 is a set of integer variables and must be a subset of  {x1, &,xn}.'       ,-./0              123  456 ,-./0123 12,-./03#       ,-./0              123  456(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone: a :- b :<= k represents  a - b "d k<Difference of two variables>5Takes labeled list of constraints, and returns either7unsatisfiable set of constraints as a set of labels, orsatisfying assignment.:;<=>  :;<=>:;<=>:;<=>  ;4=6(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (MultiParamTypeClasses, FlexibleInstances)None9;<=E1Quantifier-free formula of Presburger arithmetic.F"Literals of Presburger arithmetic.GIsPos e means e > 0HDivisible True d e means e can be divided by d (i.e. d | e)Divisible False d e means e can not be divided by d (i.e. (d | e)) '(t,c) represents t/c, and c must be >0.I+Linear arithmetic expression over integers.Kd | e means e can be divided by d.LL M  returns whether  M "_LIA  or not.NN x  returns  (, lift) such that:"_LIA "y1, &, yn. ("x. ) !  where {y1, &, yn} = FV() \ {x}, andif  M "_LIA  then lift M "_LIA .OO {x1, &,xm}  returns  (, lift) such that:%"_LIA "y1, &, yn. ("x1, &, xm. ) !  where {y1, &, yn} = FV() \ {x1, &,xm}, andif  M "_LIA  then lift M "_LIA .PP x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LIA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LIA _i then lift_i M "_LIA .QQ {x1, &,xm}  returns ![(_1, lift_1), &, (_n, lift_n)] such that:+"_LIA "y1, &, yp. ("x. ) ! (_1 "( & "( _n) where {y1, &, yp} = FV() \ {x1, &,xm}, andif  M "_LIA _i then lift_i M "_LIA .RR {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.SS {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.TT {x1, &,xn}  I returns Just M that  M "_LIRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.I7 is a set of integer variables and must be a subset of  {x1, &,xn}.+ ! " # $ %EFGH IJ & ' ( ) * +K , - .LMNOP /Q 0RST 1 2UVWXYZ[EFHGIJKLMNOPQRSTIFGHMEJKLNOPQSRT%  ! " # $ %EFGH IJ & ' ( ) * +K , - .LMNOP /Q 0RST 1 2UVWXYZ[(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone`EEliminate quantifiers and returns equivalent quantifier-free formula.`  returns  (, lift) such that:# is a quantifier-free formula and LIA " "y1, &, yn.  !  where {y1, &, yn} = FV() " FV(), andif  M "_LIA  then lift M "_LIA .% may or may not be a closed formula.a a {x1, &,xm} returns Sat M such that  M "_LIA  when such M exists,returns Unsat when such M does not exists, andreturns Unknown when  is beyond LIA.`a`a`a`a(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional non-portable (FlexibleInstances)NoneEFHGIJKLNOPQRST`aIFGHEJKLNOPQ`SRaT(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneTBb 3 4 5 6cdefghi 7 8 9 : ; < = > ? @ Aj B C D E F G H I J K L Mklmnopqr N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b cbcedfighjklmnopqrfghicdenjopqrbklm=b 3 4 5 6cdefghi 7 8 9 : ; < = > ? @ Aj B C D E F G H I J K L Mklmnopqr N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneyz{ ,-./012yz{ 12,-./0yz{yz{(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone|&Complex numbers are an algebraic type.For a complex number z,  d z# is a number with the magnitude of z8, but oriented in the positive real direction, whereas  e z has the phase of z, but unit magnitude.~+Extracts the real part of a complex number.0Extracts the imaginary part of a complex number."The conjugate of a complex number..The nonnegative magnitude of a complex number.5The polynomial of which the algebraic number is root. fRoots of the polynomial|}~ f g h i j k l|}~|}~|}~ f g h i j k l}6(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)SafeT5tightening variable bounds by constraint propagation. mGtightening intervals by ceiling lower bounds and flooring upper bounds. ninitial bounds constraintsintegral variableslimit of iterations o p mee n o p mSafe q q(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone r s t r s t(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneTresults of optimizationAllocate a new  non-negative variable.eAdd a contraint and maintain feasibility condition by introducing artificial variable (if necessary).Disequality is not supported.Unlike F, an equality contstraint becomes one row with an artificial variable.FAdd a contraint, without maintaining feasibilty condition of tableaus.Disequality is not supported.Unlike *, an equality constraint becomes two rows. u v w x y z { | } ~ u v w x y z { | } ~(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneTresults of optimization    (c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT      Safe     None       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG H I JKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l L m n o p q r s t W u v m L n w x y z { | } ~   sWuvmLnyz{|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWXYZ[\]H^_^^`aabcddefghijklmnoopqrstuvwxyzz{|}~       !!""""""##$$$ $ $ $ %%%%& & &&&&''(((((()))))))))* ***c**!*"**+#+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N-O-O-P-Q-R-S-T-U.V.W.X..Y.Z.[.\.].^._.`.a.b.c.d.e.f.g.h/i/i/j/k//l//m/n//o/v/p/w/x/q/y/r/s/t/u/v/w/x/y/z/{/|/}////~//00000000000000000000000000011111 1 1 1111 1111111111111111111111111112222333Y3Z3[3\3]333333333333333333333333344V455555555555566666666666777777777777777777777777789::;;;;;<=======M=M=======U=== = = = = ====>>>>??????????? ?!?"?#?$?%?&?'?(?)?*?+?,?-?.?/?0?1?2?3?4?5?6?7?8?9??:?;???<?=?!?"??>???@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`?a?b?c?d?e@@AfAfAgAhAiAVAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~AAAAAAAABBCCDDDDDDDDDDDDEJEEEEEiEkEEEEEEEEXEVEWE[EZFiFkFFFFFFFFGGG.GGGGGGGHHHHHHIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKLLLLLLLLMMNNOOPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7RRRR8RRRR9RWRXRRYRZR[R\R]R^R_RVRRRR:RR;R<R=R>R?R@RRRARBRCRjRRDRFRJRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRRRRWRXRYRZR[R\R]R^R_R`RaRbSScSdSeSSfSgShMMijklmnopqMMijklrstuvnwxyzT{T|T}VWXMXMX~XXXXUYZ[[n[[[[[[[[[{[|[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\]^__`````abcccccccccccccdddddddddddddefghiiiijtjjktkklmmnnnMnMnnnnnnnUnooooMoMoooooooooooooooooooooooooUooooooooopppqqqnqqqMqMqqiqqqqqUqqqqqrrrrrrrrrrrrrrrrsssssttU{U|UUuuuuuuuuuuvvvvvv v v v v vvvvvvvvvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v*v+v,v-vv.v/v0v1v2v3v4v5v6v7v8v9v:v;v<v=v>v?v@vAvBvCvDvEvFvGvHvIvJvKvvvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv[v\v]v^v_v`vavbvcvdvvvvXvYvWwww.wewfwwwwwwgwhwiwjwkwlwmwnxoxpxxqxrxsxtxyuyvywyxyyyzy{y|y}y~yyyyyyyyyyyyyzzzMzMzzzzzzzzzzzzzzzzzzzzzzzzzzzz.zfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzUzzzzzzzzzzzzz{{|||t|||||||||||||||||||||||||W||||||||||||||||||||g|i||||||||||||||||||||||||||||||||||||||| | | || | ||||||}}}}}}}}}}~~~~~~~~~~~~~~~~ ~~!~q~"~~#~$~%~&~'~()*+MM,-./0$%U&'(123456789:o;<pFqrst/=>?@ABCDEFG*)HIJIK!LMNq"#OPQRSTUVWXY&Z[\]^_`abc#de.fghijklmnmnopqrstuvwxyz{|}~]   K Q Z    s         s       !"#{$%&'()*+,-nm./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU"{VWXYZ[\!]^_`uabcdef(gh)iDjklm5nopqrs6t=uvwxFyHJz{|}~!!#####'')1111333334455557777)7(777777777 :::::<===============1========>>>>>>>@@@!@@@AiAAAAAAAAAABBBBDDDDDDDDEiEEFiFFIIIIIIIIIIIIIIIIIIIIIIIIIIII I JJ J J JJ J J J J J J J K LM Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q QQ QQ Q !Q !Q "Q "Q #Q $Q %Q &Q &Q 'Q (Q )Q *Q +Q ,Q -Q .Q .Q /Q 0Q 1Q 2Q 3Q 4Q 5Q 6Q 6Q 7Q 8Q 9Q :Q ;Q ;Q <Q =Q >Q ?Q @Q AQ BQ CQ DQ EQ FQ GQ HQ IQ JQ KQ LQ MQ NQ OQ PQ QQ RQ SQ TQ UQ VQ WQ XQQ YQ ZQQ [Q \Q ]Q ^Q _Q `Q aQ bQ cQ dQ eQ fQ gQ hQ iQ jQ kQ lQ mQ nQ oQ pQ qQ rQ sQ tQ uQ vQ wQ xQ xQ yQ zQ zQ {Q |Q }Q ~Q Q Q Q Q QQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q QQ Q Q QQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q R R R R R R R R"R R R R R R R R RRR R R R R R RR R R RRS S S S S S S S SS S SU}U}}V W W W W W W W W X X X X X X X X X X X Y Z [[ ![ "[ #[ $[ %[ &[ '[ ([ )\ *\ +\ ,_ -_ -_ ._ /_ 0_ 1_ 2`c 3c 4c *c +c ,d 5d 4d *d +d ,j jm 6m 7m 8 9 :n ;p <q =r > ? @ A @r Br Cr Dr Er Fr Gr Hr Ir Js <s Ks s Ls Ms Ns Os Ps QUUU Ru Su Tu Uu Vv!w Ww Xw Xw Yw Zw [w \ww ]w ^w _w `w aw bw cw dw ew fw gwww hw iw jw kw lw mw nw ow pww qw rw sw wx txx ux vxxy wy xy yy zy {y |y }y ~y y y y y y y y z z z z z z z z zz z z z bzz z Yz z z nz z z zz z z z z z z z z z z z z z z z zxz{z z z z z zz z z z z z z z z z z z || | | | | | | | | | | | | | | || | | | | | | | | | | | || | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |} } } } } } } } } } } } } } } } }} } } } ~ ~ ~ ~ ~ ~ ~~ ~ ~)  ! " ! # $ % & ' ( ) * + , - . /# 0 1 2 3 4 5 6) 7 8 9 : : ; < = > ( ) * + , ? u t @ A B C" D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q p r s  B t{ u" v w x y z { | } ~          &toysolver-0.5.0-5ZUjFSEOVAb9nmwaQTLMfcToySolver.Data.MIP.BaseToySolver.Data.MIP.Solver.BaseToySolver.Data.MIP ToySolver.Internal.Data.SeqQueueToySolver.Text.SDPFileToySolver.Text.QDimacsToySolver.SAT.ConfigToySolver.Internal.UtilToySolver.Internal.TextUtilToySolver.Internal.ProcessUtilToySolver.Internal.Data.IOURefToySolver.Internal.Data.Vec,ToySolver.Internal.Data.IndexedPriorityQueue%ToySolver.Internal.Data.PriorityQueueToySolver.Graph.ShortestPathToySolver.EUF.CongruenceClosureToySolver.EUF.EUFSolverToySolver.Data.Polynomial7ToySolver.Data.Polynomial.Factorization.Hensel.Internal2ToySolver.Data.Polynomial.Factorization.SquareFree'ToySolver.Data.Polynomial.GroebnerBasis3ToySolver.Data.Polynomial.Factorization.FiniteField2ToySolver.Data.Polynomial.Factorization.Zassenhaus/ToySolver.Data.Polynomial.Factorization.Integer0ToySolver.Data.Polynomial.Factorization.Rational0ToySolver.Data.Polynomial.Interpolation.Lagrange1ToySolver.Data.Polynomial.Factorization.KroneckerToySolver.Data.MIP.LPFileToySolver.Data.MIP.MPSFile!ToySolver.Data.MIP.Solver.LPSolveToySolver.Data.MIP.Solution.CBCToySolver.Data.MIP.Solver.CBC!ToySolver.Data.MIP.Solution.CPLEXToySolver.Data.MIP.Solver.CPLEX ToySolver.Data.MIP.Solution.GLPK ToySolver.Data.MIP.Solver.Glpsol"ToySolver.Data.MIP.Solution.Gurobi"ToySolver.Data.MIP.Solver.GurobiCl ToySolver.Data.MIP.Solution.SCIPToySolver.Data.MIP.Solver.SCIPToySolver.Data.LBoolToySolver.Data.IntVarToySolver.Data.DeltaToySolver.Data.BooleanToySolver.Data.DNFToySolver.Data.FOL.FormulaToySolver.Data.OrdRelToySolver.Data.FOL.ArithToySolver.Data.LAToySolver.Data.LA.FOLToySolver.Data.BoolExprToySolver.Wang$ToySolver.Data.AlgebraicNumber.Sturm#ToySolver.Data.AlgebraicNumber.Root#ToySolver.Data.AlgebraicNumber.RealToySolver.Converter.PB2WBOToySolver.Converter.PB2SMPToySolver.Converter.PB2LSPToySolver.Converter.ObjTypeToySolver.Converter.PBSetObjToySolver.Converter.MIP2SMT!ToySolver.Combinatorial.SubsetSumToySolver.SAT.TypesToySolver.Converter.PB2IPToySolver.SAT.Encoder.Tseitin'ToySolver.SAT.Encoder.PB.Internal.Adder%ToySolver.SAT.Encoder.PB.Internal.BDD(ToySolver.SAT.Encoder.PB.Internal.SorterToySolver.SAT.Encoder.PBToySolver.SAT.Encoder.PBNLCToySolver.SAT.Encoder.IntegerToySolver.SAT.MUS.Types.ToySolver.SAT.MessagePassing.SurveyPropagationToySolver.SAT.PBO.ContextToySolver.SAT.PrinterToySolver.SAT.Store.PBToySolver.Converter.MIP2PB#ToySolver.Converter.PBLinearizationToySolver.Converter.WBO2PBToySolver.SAT.TheorySolver ToySolver.SATToySolver.EUF.FiniteModelFinder ToySolver.QBFToySolver.SAT.MUSToySolver.SAT.MUS.EnumToySolver.SAT.PBO.BCToySolver.SAT.PBO.BCDToySolver.SAT.PBO.BCD2ToySolver.SAT.PBO.MSU4ToySolver.SAT.PBO.UnsatBasedToySolver.SAT.PBOToySolver.Text.CNFToySolver.Converter.SAT2PBToySolver.Converter.SAT2IP'ToySolver.SAT.ExistentialQuantificationToySolver.SAT.Store.CNFToySolver.Converter.PB2SATToySolver.Converter.SAT2KSATToySolver.Text.GCNFToySolver.Text.MaxSATToySolver.Converter.GCNF2MaxSATToySolver.Converter.MaxSAT2WBOToySolver.Converter.MaxSAT2IPToySolver.Converter.WBO2MaxSAT)ToySolver.Combinatorial.Knapsack.DPSparse(ToySolver.Combinatorial.Knapsack.DPDense#ToySolver.Combinatorial.Knapsack.BB'ToySolver.Combinatorial.HittingSet.Util)ToySolver.Combinatorial.HittingSet.Simple&ToySolver.Combinatorial.HittingSet.SHD2ToySolver.Combinatorial.HittingSet.InterestingSets(ToySolver.Combinatorial.HittingSet.MARCO)ToySolver.Combinatorial.HittingSet.HTCBDD7ToySolver.Combinatorial.HittingSet.FredmanKhachiyan19967ToySolver.Combinatorial.HittingSet.GurvichKhachiyan1999&ToySolver.Combinatorial.HittingSet.DAA)ToySolver.Combinatorial.BipartiteMatchingToySolver.BitVector.BaseToySolver.BitVector.Solver#ToySolver.Arith.VirtualSubstitution ToySolver.Arith.Simplex.TextbookToySolver.Arith.SimplexToySolver.Arith.Simplex.Simple ToySolver.SMTToySolver.Arith.MIP#ToySolver.Arith.FourierMotzkin.Base"ToySolver.Arith.FourierMotzkin.FOL+ToySolver.Arith.FourierMotzkin.OptimizationToySolver.Arith.OmegaTest.BaseToySolver.Arith.DifferenceLogicToySolver.Arith.Cooper.BaseToySolver.Arith.Cooper.FOLToySolver.Arith.CADToySolver.Arith.OmegaTest&ToySolver.Data.AlgebraicNumber.ComplexToySolver.Arith.BoundsInferenceToySolver.Arith.LPUtilToySolver.Arith.ContiTraverso)ToySolver.Arith.Simplex.Textbook.LPSolver0ToySolver.Arith.Simplex.Textbook.LPSolver.Simple1ToySolver.Arith.Simplex.Textbook.MIPSolver.SimpleToySolver.VersionToySolver.Version.THToySolver.Data.Polynomial.Base.ToySolver.Data.Polynomial.Factorization.HenselToySolver.Data.MIP.Solver&ToySolver.Data.AlgebraicNumber.GraeffeToySolver.SAT.MUS.BaseToySolver.SAT.MUS.DeletionToySolver.SAT.MUS.Enum.BaseToySolver.SAT.MUS.InsertionToySolver.SAT.MUS.QuickXplainToySolver.SAT.MUS.Enum.CAMUSToySolver.BitVectorToySolver.Arith.FourierMotzkinToySolver.Arith.CooperPaths_toysolver#OptDir-0.0.3-AZzF3gz03CcCf42ancyslC Data.OptDirOptMaxOptMinOptDir0data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVDData.Default.ClassdefDefault-extended-reals-0.2.2.0-3riGHdnL1RUIRNF61zeFUiData.ExtendedRealFiniteExtendedNegInfPosInf&megaparsec-6.2.0-pWtGle4bFH9yv4IfTZKBAText.Megaparsec.Error FancyError TrivialError ParseError"queue-0.1.2-975dyAqdI0R8xOtjnsMXjlData.Queue.ClassesnewFifoNewFifo enqueueBatchenqueueEnqueue dequeueBatchdequeueDequeue queueSize QueueSize DenseBlock DenseMatrixBlockMatrixProblem blockStructcostsmatricesmDimnBlock blockElem denseBlock denseMatrix diagBlock parseData parseDataFileparseSparseDataparseSparseDataFilerender renderSparse $fShowProblem $fOrdProblem $fEqProblemClauseLitAtomQuantSet QuantifierEAQDimacsnumVars numClausesprefixmatrix parseFileparseByteString$fEqQuantifier$fOrdQuantifier$fShowQuantifier$fReadQuantifier$fEnumQuantifier$fBoundedQuantifier $fEqQDimacs $fOrdQDimacs $fShowQDimacs $fReadQDimacs PBHandlerTypePBHandlerTypeCounterPBHandlerTypePuebloBranchingStrategyBranchingVSIDS BranchingERWA BranchingLRBLearningStrategyLearningClauseLearningHybridRestartStrategyMiniSATRestarts ArminRestarts LubyRestartsConfigconfigRestartStrategyconfigRestartFirstconfigRestartIncconfigLearningStrategyconfigLearntSizeFirstconfigLearntSizeInc configCCMinconfigBranchingStrategyconfigERWAStepSizeFirstconfigERWAStepSizeDecconfigERWAStepSizeMinconfigEMADecayconfigEnablePhaseSaving%configEnableForwardSubsumptionRemoval&configEnableBackwardSubsumptionRemovalconfigRandomFreqconfigPBHandlerTypeconfigEnablePBSplitClausePartconfigCheckModelconfigVarDecayconfigConstrDecayshowRestartStrategyparseRestartStrategydefaultRestartFirstdefaultRestartIncshowLearningStrategyparseLearningStrategyshowBranchingStrategyparseBranchingStrategydefaultLearntSizeFirstdefaultLearntSizeInc defaultCCMindefaultRandomFreqshowPBHandlerTypeparsePBHandlerTypedefaultPBSplitClausePartdefaultEnablePhaseSaving&defaultEnableForwardSubsumptionRemoval'defaultEnableBackwardSubsumptionRemoval$fDefaultPBHandlerType$fDefaultBranchingStrategy$fDefaultLearningStrategy$fDefaultRestartStrategy$fDefaultConfig$fShowRestartStrategy$fEqRestartStrategy$fOrdRestartStrategy$fEnumRestartStrategy$fBoundedRestartStrategy$fShowLearningStrategy$fEqLearningStrategy$fOrdLearningStrategy$fEnumLearningStrategy$fBoundedLearningStrategy$fShowBranchingStrategy$fEqBranchingStrategy$fOrdBranchingStrategy$fEnumBranchingStrategy$fBoundedBranchingStrategy$fShowPBHandlerType$fEqPBHandlerType$fOrdPBHandlerType$fEnumPBHandlerType$fBoundedPBHandlerType $fShowConfig $fEqConfig $fOrdConfig combineMaybe isIntegerfracPart showRationalshowRationalAsFiniteDecimal revSequencerevMapMrevForMsetEncodingChar8readIntreadUnsignedIntegerrunProcessWithOutputCallbackSeqQueueclear$fQueueSizeSeqQueuem$fDequeueSeqQueuema$fEnqueueSeqQueuema$fNewFifoSeqQueuemIOURef newIOURef readIOURef writeIOURef modifyIOURef $fEqIOURefIndexUVecVec GenericVecnewgetSizereadwritemodifymodify' unsafeModify unsafeModify' unsafeRead unsafeWriteresizegrowTopushpopMaybepop unsafePoppeek unsafePeekgetElemsclonegetArray getCapacityresizeCapacity$fEqGenericVec PriorityQueueValuenewPriorityQueuenewPriorityQueueBymemberupdaterebuild getHeapArray getHeapVecresizeHeapCapacityresizeTableCapacity$fQueueSizePriorityQueueIO$fDequeuePriorityQueueIOInt$fEnqueuePriorityQueueIOInt$fNewFifoPriorityQueueIO$fDequeuePriorityQueueIOa$fEnqueuePriorityQueueIOaFoldPathEmpty SingletonAppendInEdgeOutEdgeEdgeGraphpathFrompathTopathCost pathEmpty pathAppend pathEdgespathEdgesBackward pathEdgesSeq pathVertexespathVertexesBackwardpathVertexesSeqpathFoldmonoid'monoidunitpairpath firstOutEdge lastInEdge bellmanFordbellmanFordDetectNegativeCycledijkstra floydWarshall$fApplicativeFold $fFunctorFold$fEqPath $fShowPathModel mUniverse mFunctions mUnspecified mEquivClasses EntityTupleEntityVAFun withVArgsSolverConstrIDFlatTermFTConstFTAppTermTAppFSym newSolvernewFSymnewFunnewConstmergemerge' mergeFlatTermmergeFlatTerm' areCongruentareCongruentFlatTermexplainexplainFlatTerm explainConstgetModelevalevalAppushBacktrackPointpopBacktrackPointtermToFlatTermflatTermToFSymfsymToFlatTerm termToFSym fsymToTerm $fVAFun(->) $fVAFunTerm$fSemigroupClass $fOrdTerm$fEqTerm $fShowTerm $fOrdFlatTerm $fEqFlatTerm$fShowFlatTerm$fEqEqn0 $fOrdEqn0 $fShowEqn0$fEqEqn1 $fOrdEqn1 $fShowEqn1 $fShowClass $fShowModel$fShowTrailItem assertEqual assertEqual'assertNotEqualassertNotEqual'checkareEqual MonomialOrder UMonomialMonomial mindicesMapUTermX UPolynomial PrettyVar pPrintVar PrettyCoeff pPrintCoeffisNegativeCoeff PrintOptions pOptPrintVarpOptPrintCoeffpOptIsNegativeCoeffpOptMonomialOrderSQFreesqfreeFactorfactorContPPPPCoeffcontpp PolynomialcoeffMapDegreedegVarsvarsVarvarconstant fromTerms fromCoeffMapfromTermtermsltlclmcoeff lookupCoeff isPrimitivederivintegralsubstmapCoefftoMonictoUPolynomialOfdivModMPreduceeisensteinsCriterion prettyPrintnatdivmoddivModdividesgcdlcmexgcdpdivModpdivpmodgcd'isRootOf isSquareFreetdegtscaletmulttdividestdivtderiv tintegralmone mfromIndicesmfromIndicesMapmindicesmmultmpowmdividesmdivmderiv mintegralmlcmmgcdmcoprimelexrevlexgrlexgrevlexhenselcabook_proposition_5_10cabook_proposition_5_11 sqfreeChar0$fSQFreePolynomial$fSQFreePolynomial0StrategyNormalStrategy SugarStrategyOptions optStrategy spolynomialbasisbasis' reduceGBasis$fEqItem $fOrdItem$fDefaultOptions $fEqStrategy $fOrdStrategy$fShowStrategy$fReadStrategy$fBoundedStrategy$fEnumStrategy berlekampbasisOfBerlekampSubalgebra$fFactorPolynomial zassenhaus interpolate FileOptionsoptFileEncoding VariablesSolution solStatussolObjectiveValue solVariablesStatus StatusUnknownStatusFeasible StatusOptimalStatusInfeasibleOrUnboundedStatusInfeasibleStatusUnbounded SOSConstraintsosLabelsosTypesosBodySOSTypeS1S2RelOpLeGeEql Constraint constrLabelconstrIndicator constrExprconstrLBconstrUB constrIsLazyObjectiveFunctionobjLabelobjDirobjExprExprBounds BoundExprVarTypeContinuousVariableIntegerVariableSemiContinuousVariableSemiIntegerVariableLabelnameobjectiveFunction constraintssosConstraintsuserCutsvarType varBoundstoVarfromVar getVarType defaultBounds defaultLB defaultUB getBoundsintersectBoundsvarExpr constExpr.==..<=..>=. variablesintegerVariablessemiContinuousVariablessemiIntegerVariables$fDefaultFileOptions$fVariablesSOSConstraint$fVariablesConstraint$fVariablesObjectiveFunction$fVariablesTerm$fVariablesExpr$fVariablesProblem$fVariablesEither $fVariables[]$fDefaultSolution$fFunctorSolution$fMeetSemiLatticeStatus$fPartialOrdStatus$fFunctorSOSConstraint$fFunctorConstraint$fDefaultConstraint$fFunctorObjectiveFunction$fDefaultObjectiveFunction $fFunctorTerm $fFunctorExpr $fNumExpr$fDefaultVarType$fFunctorProblem$fDefaultProblem $fEqVarType $fOrdVarType $fShowVarType$fEqExpr $fOrdExpr $fShowExpr$fEqObjectiveFunction$fOrdObjectiveFunction$fShowObjectiveFunction$fEqConstraint$fOrdConstraint$fShowConstraint $fEqRelOp $fOrdRelOp $fEnumRelOp $fShowRelOp $fEqSOSType $fOrdSOSType $fEnumSOSType $fShowSOSType $fReadSOSType$fEqSOSConstraint$fOrdSOSConstraint$fShowSOSConstraint $fEqStatus $fOrdStatus $fEnumStatus$fBoundedStatus $fShowStatus $fEqSolution $fOrdSolution$fShowSolution$fShowFileOptions parseStringparser $fEqBoundType$fOrdBoundType$fShowBoundType$fReadBoundType$fEnumBoundType$fBoundedBoundTypeIsSolversolve SolveOptionssolveTimeLimit solveLoggersolveErrorLogger$fDefaultSolveOptionsLPSolve lpSolvePathlpSolve$fIsSolverLPSolveIO$fDefaultLPSolvereadFile readLPFile readMPSFile parseLPStringparseMPSString writeFile writeLPFile writeMPSFile toLPString toMPSStringparseCBCcbcPathcbc$fIsSolverCBCIO $fDefaultCBCCPLEX cplexPathcplex$fIsSolverCPLEXIO$fDefaultCPLEXGlpsol glpsolPathglpsol$fIsSolverGlpsolIO$fDefaultGlpsolGurobiCl gurobiClPathgurobiCl$fIsSolverGurobiClIO$fDefaultGurobiClSCIPscipPathscip$fIsSolverSCIPIO $fDefaultSCIPLBoollTruelFalselUndeflnotliftBool unliftBool $fShowLBool $fEqLBoolEvalVarMapVarSetDeltadeltafromRealrealPart deltaPartfloor'ceiling' isInteger'$fRealFracDelta $fRealDelta$fFractionalDelta $fNumDelta$fVectorSpaceDelta$fAdditiveGroupDelta $fOrdDelta $fEqDelta $fShowDeltaBoolean.=>..<=>. IfThenElseite ComplementnotBMonotoneBooleantruefalse.&&..||.andBorB iteBoolean $fBooleanBool$fIfThenElseBoolBool$fMonotoneBooleanBool$fComplementBool $fBoolean(->)$fIfThenElse(->)(->)$fMonotoneBoolean(->)$fComplement(->) $fBoolean(,)$fIfThenElse(,)(,)$fMonotoneBoolean(,)$fComplement(,)DNFunDNF $fBooleanDNF$fIfThenElseDNFDNF$fMonotoneBooleanDNF$fComplementDNF $fShowDNFFormulaTFAndOrNotImplyEquivForallExistspushNot$fBooleanFormula$fIfThenElseFormulaFormula$fMonotoneBooleanFormula$fComplementFormula$fVariablesFormula $fShowFormula $fEqFormula $fOrdFormulaOrdRelIsOrdRel.<..>.ordRelIsEqRel./=.LtGtNEqflipOpnegOpshowOpevalOp fromOrdRel$fEvalmOrdRelBool$fFunctorOrdRel$fVariablesOrdRel$fIsOrdReleOrdRel$fIsEqReleOrdRel$fComplementOrdRel $fShowOrdRel $fEqOrdRel $fOrdOrdRel SatResultUnknownUnsatSatConst:+::*::/:evalExprevalAtom$fIsOrdRelExprFormula$fIsEqRelExprFormula$fEvalIntMapExprr$fFractionalExpr$fShowSatResult $fEqSatResult$fOrdSatResult BoundsEnvunitVarasConstmapCoeffWithVar evalLinearlift1 applySubst applySubst1extract extractMaybeshowExprshowAtomapplySubstAtomapplySubst1AtomsolveForcomputeInterval$fVectorSpaceExpr$fAdditiveGroupExpr $fNFDataExpr $fReadExpr fromFOLAtom toFOLFormula fromFOLExpr toFOLExprBoolExprITEfoldsimplify$fBooleanSimplify$fIfThenElseSimplifySimplify$fMonotoneBooleanSimplify$fComplementSimplify$fEvalmBoolExprBool$fVariablesBoolExpr$fBooleanBoolExpr$fIfThenElseBoolExprBoolExpr$fMonotoneBooleanBoolExpr$fComplementBoolExpr$fHashableBoolExpr$fNFDataBoolExpr$fTraversableBoolExpr$fFoldableBoolExpr$fMonadBoolExpr$fApplicativeBoolExpr$fFunctorBoolExpr $fEqBoolExpr $fOrdBoolExpr$fShowBoolExpr$fReadBoolExpr$fDataBoolExprSequentisValid SturmChain sturmChainnumRoots numRoots'separate separate'halvehalve'narrownarrow'approxapprox' normalizePolyrootAddrootMul rootShift rootScale rootRecip rootSimpPoly rootNthRootlift2findPolyAReal realRoots realRootsExapproxIntervalnthRootrefineIsolatingIntervalminimalPolynomialisolatingInterval isRationalisAlgebraicIntegerheight rootIndex simpARealPoly goldenRatio$fPrettyCoeffAReal $fPrettyAReal $fDegreeAReal$fRealFracAReal $fRealAReal$fFractionalAReal $fNumAReal $fOrdAReal $fEqAReal $fShowARealconvert convertWBOObjTypeObjNone ObjMaxOne ObjMaxZero $fEqObjTypesetObj YicesVersionYices1Yices2LanguageSMTLIB2YICES optLanguage optSetLogic optCheckSAToptProduceModel optOptimize$fShowYicesVersion$fEqYicesVersion$fOrdYicesVersion$fEnumYicesVersion$fBoundedYicesVersion$fShowLanguage $fEqLanguage $fOrdLanguage $fShowOptions $fEqOptions $fOrdOptionsWeight maxSubsetSum minSubsetSum subsetSum AddXORClause addXORClauseaddXORClauseSoftAddPBNLaddPBNLAtLeast addPBNLAtMostaddPBNLExactlyaddPBNLAtLeastSoftaddPBNLAtMostSoftaddPBNLExactlySoftAddPBLin addPBAtLeast addPBAtMost addPBExactlyaddPBAtLeastSoftaddPBAtMostSoftaddPBExactlySoftAddCardinality addAtLeast addAtMost addExactly AddClause addClauseNewVarnewVarnewVarsnewVars_ XORClausePBSumPBTerm PBLinExactly PBLinAtLeastPBLinSum PBLinTermExactlyAtLeastLitMapLitSetIModelevalVarvalidVar restrictModellitUndefvalidLitliterallitNotlitVar litPolarityevalLitnormalizeClauseinstantiateClause clauseSubsume evalClauseclauseToPBLinAtLeastnormalizeAtLeastinstantiateAtLeast evalAtLeast evalExactlynormalizePBLinSumnormalizePBLinAtLeastnormalizePBLinExactlyinstantiatePBLinAtLeastinstantiatePBLinExactly cutResolvecardinalityReductionnegatePBLinAtLeast evalPBLinSumevalPBLinAtLeastevalPBLinExactly pbLowerBound pbUpperBound pbSubsume evalPBSumevalPBConstraintnormalizeXORClauseinstantiateXORClause evalXORClause $fIModel(->) $fIModelArray$fIModelUArrayPolaritypolarityPosOccurspolarityNegOccursEncoder evalFormula newEncodernewEncoderWithPBLinsetUsePB addFormula encodeFormulaencodeFormulaWithPolarity encodeConjencodeConjWithPolarity encodeDisjencodeDisjWithPolarity encodeITEencodeITEWithPolarity encodeXORencodeXORWithPolarity encodeFASumencodeFASumWithPolarity encodeFACarryencodeFACarryWithPolaritygetDefinitionsnegatePolarity polarityPos polarityNeg polarityBoth polarityNone$fAddClausemEncoder$fNewVarmEncoder $fEqPolarity$fShowPolarityaddPBLinAtLeastAdderencodePBLinAtLeastAdderaddPBLinAtLeastBDDencodePBLinAtLeastBDDCostUNumberUDigitBasegenSorterCircuit sortVectorisRepresentableencodedecode optimizeBaseaddPBLinAtLeastSorterencodePBLinAtLeastSorterBDDAdderSorterHybridnewEncoderWithStrategyencodePBLinAtLeast$fAddPBLinmEncoder$fAddCardinalitymEncoder$fDefaultStrategygetTseitinEncoderlinearizePBSumlinearizePBSumWithPolarity$fAddPBNLmEncoder linearize addConstraintaddConstraintSoftMSSSSMCSCSMUSUS deleteSolverinitializeRandominitializeRandomDirichletgetNVarsgetNConstraints getTolerance setTolerancegetIterationLimitsetIterationLimit getNThreads setNThreads propagate getVarProbfixLitunfixLit printInfo Normalized SimpleContextContextgetObjectiveFunctionevalObjectiveFunctionisUnsatgetBestSolution getLowerBoundsetUnsat addSolution addLowerBound logMessage getBestValue getBestModel isOptimum isFinishedgetSearchUpperBound setFinishednewSimpleContextnewSimpleContext2setOnUpdateBestSolutionsetOnUpdateLowerBound setLogger normalize$fContextNormalized$fContextSimpleContext satPrintModelmaxsatPrintModel pbPrintModel musPrintSolPBStore newPBStore getPBFormula$fAddPBNLmPBStore$fAddPBLinmPBStore$fAddCardinalitymPBStore$fAddClausemPBStore$fNewVarmPBStoreaddMIP linearizeWBOaddWBO TheorySolver thAssertLitthCheck thExplainthPushBacktrackPointthPopBacktrackPointthConstructModel emptyTheoryCanceledBudgetExceeded getVarFixed getLitFixedgetFixedLiteralsvarDecayActivityvarBumpActivitynVarsnAssigns nConstraintsgetNLearntConstraintsnLearntnewSolverWithConfigresizeVarCapacity solveWithcancelgetFailedAssumptionsgetAssumptionsImplications getConfig setConfig modifyConfigsetRestartStrategysetRestartFirst setRestartIncsetLearningStrategysetLearntSizeFirstsetLearntSizeIncsetCCMinsetVarPolarity setCheckModel setRandomFreq setRandomGen getRandomGen setConfBudgetsetPBHandlerTypesetPBSplitClausePartgetPBSplitClausePartsetEnablePhaseSavinggetEnablePhaseSaving"setEnableForwardSubsumptionRemoval"getEnableForwardSubsumptionRemoval#setEnableBackwardSubsumptionRemoval#getEnableBackwardSubsumptionRemoval setTheory $fConstraintHandlerTheoryHandler$fHashableTheoryHandler#$fConstraintHandlerXORClauseHandler$fHashableXORClauseHandler$fEqXORClauseHandler"$fConstraintHandlerPBHandlerPueblo$fHashablePBHandlerPueblo$fEqPBHandlerPueblo#$fConstraintHandlerPBHandlerCounter$fHashablePBHandlerCounter$fEqPBHandlerCounter!$fConstraintHandlerAtLeastHandler$fHashableAtLeastHandler$fEqAtLeastHandler $fConstraintHandlerClauseHandler$fHashableClauseHandler$fEqClauseHandler($fConstraintHandlerSomeConstraintHandler$fHashableSomeConstraintHandler$fExceptionCanceled$fExceptionBudgetExceeded$fAddXORClauseIOSolver$fAddPBLinIOSolver$fAddCardinalityIOSolver$fAddClauseIOSolver$fNewVarIOSolver$fShowBudgetExceeded$fShowCanceled$fEqTheoryHandler$fEqSomeConstraintHandler mRelations GenFormulaPAppTmAppTmVarGenLitPosNegPSym toSkolemNF showEntity showModelevalTerm evalClauses evalClausesU findModel$fVarsSGenAtom$fVarsSGenTerm$fVarsGenFormula$fBooleanGenFormula $fIfThenElseGenFormulaGenFormula$fComplementGenFormula$fMonotoneBooleanGenFormula $fVarsAtom $fVarsTerm $fVarsGenLit$fComplementGenLit$fVars[] $fShowGenLit $fEqGenLit $fOrdGenLit $fShowAtom$fEqAtom $fOrdAtom$fShowGenFormula$fEqGenFormula$fOrdGenFormula$fShowSGenTerm $fEqSGenTerm $fOrdSGenTerm$fShowSGenAtom $fEqSGenAtom $fOrdSGenAtomPrefixnormalizePrefixquantifyFreeVariables solveNaive solveCEGARsolveCEGARIncremental optMethod optLogger optShowLit optEvalConstr optUpdateBestMethodDeletion Insertion QuickXplain optOnMCSFound optOnMUSFound optKnownMCSes optKnownMUSes optKnownCSesCAMUSDAAMARCOGurvichKhachiyan1999 showMethod parseMethodfindMUSAssumptionsoptEnableHardeningoptEnableBiasedSearchoptSolvingNormalFirst Optimizer LinearSearch BinarySearchAdaptiveSearch UnsatBasedMSU4BCBCDBCD2 newOptimizer newOptimizer2optimize getMethod setMethod!defaultEnableObjFunVarsHeuristicsgetEnableObjFunVarsHeuristicssetEnableObjFunVarsHeuristicsdefaultTrialLimitConfgetTrialLimitConfsetTrialLimitConf$fDefaultMethod $fEqMethod $fOrdMethod $fShowMethod $fEnumMethod$fBoundedMethodCNFclauses cnfBuilderhPutCNF $fShowCNF$fEqCNF$fOrdCNFshortestImplicantsprojectCNFStore newCNFStore getCNFFormula$fAddClausemCNFStore$fNewVarmCNFStoreGClause GroupIndexGCNFlastGroupIndex gcnfBuilderhPutGCNFWeightedClauseWCNFtopCost wcnfBuilderhPutWCNF solveGenericsolveInt solveIntegermaintainNoSupersetsminimalHittingSetsenumMinimalHittingSetsFailure optSHDCommand optSHDArgs optOnGetLineoptOnGetErrorLine$fExceptionFailure $fShowFailureImplicateOrImplicant Implicate ImplicantoptMinimalHittingSetsoptMaximalInterestingSetsoptMinimalUninterestingSetsoptOnMaximalInterestingSetFound!optOnMinimalUninterestingSetFound SimpleProblem IsProblemuniverse isInterestingisInteresting'growshrinkmaximalInterestingSetminimalUninterestingSet.minimalUninterestingSetOrMaximalInterestingSetInterestingOrUninterestingSetUninterestingSetInterestingSet defaultGrow defaultShrinkdefaultMaximalInterestingSetdefaultMinimalUninterestingSet5defaultMinimalUninterestingSetOrMaximalInterestingSet$fIsProblemSimpleProblemm!$fEqInterestingOrUninterestingSet"$fOrdInterestingOrUninterestingSet#$fShowInterestingOrUninterestingSet#$fReadInterestingOrUninterestingSet$fEqImplicateOrImplicant$fOrdImplicateOrImplicant$fShowImplicateOrImplicant$fReadImplicateOrImplicantrungenerateCNFAndDNF MethodToda MethodKnuthoptHTCBDDCommandisCounterExampleOf condition_1_1condition_1_1_solve condition_1_2condition_1_2_solve condition_1_3condition_1_3_solve condition_2_1condition_2_1_solve isRedundantdeleteRedundancy occurFreq areDualDNFs checkDuality checkDualityA checkDualityB"findPrimeImplicateOrPrimeImplicantallMUSAssumptions$fIsProblemProblemIOmaximumCardinalityMatchingmaximumWeightMatchingCompletemaximumWeightMatching$maximumWeightPerfectMatchingComplete$minimumWeightPerfectMatchingCompletemaximumWeightPerfectMatchingminimumWeightPerfectMatchingminimumCardinalityEdgeCoverminimumWeightEdgeCoverminimumWeightEdgeCoverCompleteRelOp2OpConcatOpAndOpOrOpXOrOpCompOpAddOpMulOpUDivOpURemOpSDivOpSRemOpSModOpShlOpLShrOpAShrOp1 OpExtractOpNotOpNegEConstEVarEOp1EOp2varWidthvarIdBV BVComparisonComparisonResultbvulebvultbvugebvugtbvslebvsltbvsgebvsgtIsBVwidthfromBVbvnotbvandbvorbvxorbvnandbvnorbvxnorbvnegbvaddbvsubbvmulbvudivbvurembvsdivbvsrembvsmodbvshlbvlshrbvashrbvcomprepeat zeroExtend signExtendbv2natnat2bv fromAscBits fromDescBits toAscBits toDescBits$fBVComparisonExpr$fIsEqRelExprAtom$fComplementAtom $fBitsExpr $fMonoidExpr $fIsBVExpr$fBVComparisonBV$fIsEqRelBVBool$fIsBVBV$fBitsBV$fShowBV $fMonoidBV$fOrdBV$fEqBV$fEqVar$fOrdVar $fShowVar$fEqOp1$fOrdOp1 $fShowOp1$fEqOp2$fOrdOp2 $fEnumOp2 $fBoundedOp2 $fShowOp2newVar' assertAtom$fEqNormalizedRel$fOrdNormalizedRel$fEnumNormalizedRel$fBoundedNormalizedRel$fShowNormalizedRel$fEqNormalizedAtom$fOrdNormalizedAtom$fShowNormalizedAtom QFFormula evalQFFormulaprojectN projectCases projectCasesNsolveQFFormulaRowColIndexRowIndexTableau emptyTableau objRowIndexpivot lookupRowaddRow setObjFun currentValuecurrentObjValueisValidTableau isFeasible isOptimalsimplex dualSimplexphaseIprimalDualSimplextoCSV$fShowPivotResult$fEqPivotResult$fOrdPivotResultRawModelobjLimit OptResultOptimum UnboundedObjLimit PivotStrategyPivotStrategyBlandRulePivotStrategyLargestCoefficientBound ConstrIDSet SolverValuetoValue showValue GenericSolverGenericSolverM cloneSolver boundValueboundExplanationsetPivotStrategy assertAtom' assertAtomEx assertAtomEx' simplifyAtom assertLower assertLower' assertUpper assertUpper'getObj setOptDir getOptDirisBasicVariableisNonBasicVariable getRawModel getObjValuegetLBgetUB getTableaugetValuegetRowgetColgetCoeff clearLoggerenableTimeRecordingdisableTimeRecordingdump$fSolverValueDelta$fSolverValueRatio$fEqPivotStrategy$fOrdPivotStrategy$fEnumPivotStrategy$fShowPivotStrategy$fReadPivotStrategy$fShowOptResult $fEqOptResult$fOrdOptResultFunDef ValRational ValBitVecValBoolValUninterpreted VASortFun ExceptionError UnsupportedEApEValueFunTypeSortSSymSSymBoolSSymReal SSymBitVecSSymUninterpreted IndexNumeral IndexSymbol ssymAritysBoolsRealsBitVec declareSSym declareSort declareFSym declareFun declareConstassert assertNamedgetGlobalDeclarationssetGlobalDeclarationsexprSortcheckSATcheckSATAssumingvalSortevalFSymmodelGetAssertionsgetUnsatAssumptions getUnsatCore $fVAFunExpr$fVASortFun(->)$fVASortFunSort$fExceptionException$fIsOrdRelExprExpr$fIsEqRelExprExpr $fBooleanExpr$fIfThenElseExprExpr$fComplementExpr$fMonotoneBooleanExpr$fIsStringFSym $fShowIndex $fEqIndex $fOrdIndex $fShowFSym$fEqFSym $fOrdFSym $fShowSSym$fEqSSym $fOrdSSym $fShowSort$fEqSort $fOrdSort $fShowFDef$fShowException$fEqTheorySolverID$fOrdTheorySolverID$fEnumTheorySolverID$fBoundedTheorySolverID$fEqBVAtomNormalized$fOrdBVAtomNormalized $fEqValue $fOrdValue $fShowValue $fEqFunDef $fShowFunDefsetShowRational setNThreadConstrIsNonnegIsPosIsZeroRatExprZtoRateqR fromLAAtomtoLAAtomconstraintsToDNF evalBoundsboundsToConstrs collectBoundsproject' projectN'solve'$fEvalIntMapConstrBool$fVariablesConstr $fShowConstr $fEqConstr $fOrdConstr solveFormulaeliminateQuantifierseliminateQuantifiers' optCheckRealcheckRealNoCheck checkRealByFMsolveQFLIRAConjzmod SimpleAtom:<=Diff:-$fEqDiff $fOrdDiff $fShowDiff$fEqSimpleAtom$fOrdSimpleAtom$fShowSimpleAtom Divisible.|. $fMonoidLCM$fEvalIntMapWitnessInteger$fEvalIntMapLitBool$fIsOrdRelExprBoolExpr$fIsEqRelExprBoolExpr$fComplementLit$fVariablesLit $fShowLit$fEqLit$fOrdLit $fShowWitnessCellPointIntervalRootOf findSampleevalCell evalPoint $fEqPoint $fOrdPoint $fShowPoint$fEqCell $fOrdCell $fShowCellcheckRealByCAD checkRealByVScheckRealBySimplexAComplex:+imagPart conjugate magnitude$fFractionalAComplex $fNumAComplex $fEqAComplex$fShowAComplex inferBoundstoStandardFormtoStandardForm'LP emptySolver putTableaudefine#addConstraintWithArtificialVariabletableautwoPhaseSimplexcollectNonnegVarsOptUnsatmaximizeminimize$fOrdErr$fEqErr $fShowErr $fEnumErr $fBoundedErrversionpackageVersionsgitHashcompilationTime getGitHashgitHashQcompilationTimeQC pDataFilepSparseDataFilepComment pBlockStructpCostspDenseMatricespSparseMatricesnat_lineintrealoneOf renderImpl renderVecsepByS parsePrefix parseClausesreadIntsbase Text.Read integer-gmpGHC.Integer.TypeIntegerreadUnsignedIntprocess-1.4.3.0System.Processproc withForkWait ignoreSigPipe cloneArraycopyToghc-prim GHC.ClassesOrdnewPriorityQueueBy#lt#heaptableupdownleftrightparentPaircontainers-0.5.7.1 Data.SequenceSeqcostpathMinfreezeHashTableminByEqnEqn1Eqn0 TrailItem TrailMergeTrailSetLookupGenLevelsvDefssvRepresentativeTable svClassListsvParent svUseList svLookupTable svPendingsvERepresentativeTable svEClassListsvEHighestNodeTablesvEPendingProofssvTrail svLevelGensvIsAfterBacktrackingClassClassSingleton ClassUnion classSize classToList classForM_ getNFSymscheckInvariant addToTrailgetCurrentLevel getLevelGeninitAfterBacktrackinglookup setLookup addToPendinggetRepresentative getParentgetERepresentativegetHighestNodenearestCommonAncestor maybeToIntSet svCCSolversvDisequalities svExplanationsvBacktrackPoints asConstantscalezeroplusnegmultisZerocontIppIeisensteinsCriterion'prettyPrintTermaddPrecmulPrecratPrecexpPrecappPrecmfromIndicesMap'$fHashableMonomial$fVarsMonomialv$fVarMonomialv$fDegreeMonomial$fNFDataMonomial$fIsStringMonomial$fShowMonomial $fHashableX $fNFDataX $fPrettyVarX$fPrettyVarInt$fPrettyCoeffPolynomial$fPrettyCoeffPrimeField$fPrettyCoeffRatio$fPrettyCoeffInteger$fPrettyPolynomial$fDefaultPrintOptions $fContPPRatio$fContPPInteger$fDegreePolynomial$fVarsPolynomialv$fVarPolynomialv$fHashablePolynomial$fNFDataPolynomial$fShowPolynomial$fVectorSpacePolynomial$fAdditiveGroupPolynomial$fIsStringPolynomial$fNumPolynomialfItemiFstiSndiCmpiLCMitempairssqfree' polyPthRootnorm2sqliftsearchdiv'combfactor'factor2isUPolyZxvalues interleavefactors primeFactors splitConstMBounds2char'string'sepcommenttokidentvariablelabelreservedproblemendconstraintSection subjectTo constraintrelOp indicatorlazyConstraintsSectionuserCutsSection boundsSectionbound boundExprinfgeneralSection binarySection semiSection sosSectionexprsigntermqexprqtermqfactornumber skipManyTillexecM writeString writeCharwriteVarrender' renderExpr showCoeff showConstTerm renderLabelrenderOprenderConstraintrenderBoundExprrenderVariableListfillremoveRangeConstraintsremoveEmptyExpr BoundTypeLOUPFXFRMIPLLIUISCSIColumnspace'spaces'spaces1' commentlinenewline'rowcolumnstringLn nameSectionobjSenseSectionobjNameSection rowsSectionlazyConsSectionrowsBody colsSection rowAndVal rhsSection rangesSection boundTypequadObjSectionqMatrixSectionqcMatrixSectionindicatorsSection writeTextwriteSectionHeader writeFieldsnameRows quadMatrixcheckAtMostQuadraticparse' statusTableparseDoc parseHeadersskipRows parseColumnsGHC.Realfloorceiling normalizeExpr showExprWithSimplify runSimplifyisTrueisFalseisValid'pickboundscountSignChanges countChanges boundIntervalproperFraction'properFraction truncate'truncateround'roundRealRoot realRoots'realRoot realRoot' scaleAReal shiftARealnthRootsNthRootgraeffesMethodf'testtest2 showConstrsum'showSumshowTermshowLitgenObjEnvlistand'or'not'intExprrealExprintNumrealNumrel2reltoReal conditionsnonAdjacentPairsisInttestFiletestdatanormalizeWeightsToPositive normalize2normalizeGCDLenormalizeGCDEq maxSubsetSum'maxSubsetSumInteger'maxSubsetSumInt' GHC.TypesTrueFalseGHC.BaseNothingconvExprconvVarrelaxGErelaxLEmtransencBaseencAddPBAtLeastencUsePB encConjTable encITETable encXORTable encFASumTableencFACarryTableencodeToClauseencodeWithPolarityHelperencodePBLinAtLeastAdder'encodePBLinSumAdder encodeHASum encodeHACarry splitOddEvenprimesencodePBLinAtLeastSorter' genSortersisGEisGEModlexCompaddPBLinAtLeast'encodePBLinAtLeast' encTseitin getNEdges WorkerCommandWCUpdateEdgeProbWCUpdateSurveyWCComputeVarProb WCTerminate svVarEdges svVarProbT svVarProbF svVarFixed svClauseEdgessvClauseWeight svEdgeLit svEdgeClause svEdgeSurvey svEdgeProbUsvTolRef svIterLimRef svNThreadsRef EdgeIndex ClauseIndex^*comp propagateST propagateMTupdateEdgeProbupdateEdgeSurveycomputeVarProbnBasenObjectiveFunctionnOffsetscGetObjectiveFunctionscEvalObjectiveFunction scUnsatRefscBestSolutionRefscLowerBoundRefscOnUpdateBestSolutionRefscOnUpdateLowerBoundRef scLoggerRefsplitaddMIP'constrPropagateSomeConstraintHandlerconstrReasonOfsvVarInc svConstrIncsvERWAStepSize ldWatches vdWatches vdEMAScaledvdWhenAssignedvdParticipated vdReasonedwatchLitwatchVar getNAssignedpbSplitClausePart backtrackToreasonOf TheoryHandlerXORClauseHandlerxorLits xorActivityxorHashPBHandlerPueblo puebloTerms puebloDegreepuebloMaxSlack puebloWatchespuebloWatchSumpuebloActivity puebloHashPBHandlerCounterpbTermspbDegree pbCoeffMap pbMaxSlackpbSlack pbActivitypbHashAtLeastHandler atLeastLits atLeastNumatLeastActivity atLeastHash ClauseHandlerclaLits claActivityclaHashCHClause CHAtLeast CHPBCounter CHPBPueblo CHXORClauseCHTheoryConstraintHandlertoConstraintHandlershowConstraintHandler constrAttach constrDetachconstrIsLockedconstrOnUnassignedisPBRepresentabletoPBLinAtLeast isSatisfiedconstrIsProtected constrWeightconstrReadActivityconstrWriteActivity SearchResult SRFinished SRRestartSRBudgetExceeded SRCanceled VarActivitysvOk svVarQueue svTrailLimitsvTrailNPropagated svVarData svConstrDB svLearntDBsvTheorySolversvTheoryCheckedsvModelsvFailedAssumptionssvAssumptionsImplications svNDecisionsvNRandomDecision svNConflict svNRestart svNLearntGCsvNRemovedConstrsvConfig svRandomGen svConfBudgetsvLogger svStartWC svLastStatWC svCanceled svAssumptions svLearntLimsvLearntLimAdjCntsvLearntLimSeq svEMAScalesvLearntCounterLitData ldOccurListVarData vdPolarity vdPosLitData vdNegLitData vdActivityvdValue vdTrailIndexvdLevelvdReasonvdOnUnassigned levelRoot newVarData newLitDatavarDatalitDatavarValuelitValue getNFixedvarLevellitLevel varReason varAssignNomarkBad bcpDequeue bcpIsEmpty bcpCheckEmptybcpClearassignByassignassign_unassignaddOnUnassigned unwatchLit unwatchVaraddToDB addToLearntDBreduceDB varActivityvarRescaleAllActivity varEMAScaledvarIncrementParticipatedvarIncrementReasoned varEMADecaylearntConstraintsltVarsolve_checkForwardSubsumptionremoveBackwardSubsumedBybackwardSubsumedByremoveConstraintHandlers pickBranchLitdecidededucededuceBanalyzeConflict analyzeFinalanalyzeConflictHybridpbBacktrackLevelminimizeConflictClauseminimizeConflictClauseLocalminimizeConflictClauseRecursiveincrementReasoned peekTrailpopTrailgetDecisionLevelpushDecisionLevelpopDecisionLevelconstructModelsaveAssumptionsImplicationsconstrDecayActivityconstrBumpActivityconstrRescaleAllActivity resetStatprintStatHeader printStat showTimeDiffattachdetachisLocked isReasonOf findForWatch findForWatch2 claGetSizenewClauseHandlerbasicAttachClauseHandlernewAtLeastHandlerbasicAttachAtLeastHandler newPBHandlernewPBHandlerPromoted pbOverSAT pbToAtLeast pbToClausenewPBHandlerCounter puebloAMaxnewPBHandlerPueblopuebloGetWatchSum puebloWatch puebloUnwatchpuebloPropagatepuebloUpdateWatchSumnewXORClauseHandlerbasicAttachXORClauseHandler getTheorydeduceT mkRestartSeqminiSatRestartSeqarminRestartSeqlubyRestartSeqlubyallManyMshiftdefaultHashWithSalt debugModecheckSatisfieddumpVarActivitydumpConstrActivityloglogIOSGenAtomSGenTermSubst GroundClause GroundLit GroundAtom GroundTermSClauseSLitSAtomSTermSPAppSEqSTmAppSTmVartoNNFtest_toSkolemNFflatten test_flattenshowEntityTuple enumSubstsimplifyGroundClause collectFSym collectPSymremoveEmptyQuantifiersgroupQuantifiersprefixStartWithAprefixStartWithEreduct substVarMap prenexAndprenexOrtest'test1solveWBOCoreInfocoreLitscoreLBcoreUB coreMidValue coreUnionrefineLBrefineUB coreLBRefcoreUBSelectors newCoreInfodeleteCoreInfo getCoreLB optContext optSolver optMethodRef optEnableObjFunVarsHeuristicsRefoptTrialLimitConfRef linSearch binSearchadaptiveSearch tweakParams parseClauseBS isCommentBSseqListInfo forwardMap backwardMapdualRailEncodingcubeblockingClause parseLineBSparseCNFLineBSparseWCNFLineBSminimalHittingSets'propagateChoicenubOrdenumMCSAssumptionsallMCSAssumptionsexecSHDevalDNF execHTCBDDxhiData.IntSet.Basesize Data.Set.Basedisjoint intersectisHittingSetOfvolumee isIrredundantcheckDualityA' solveSmallcheckDualityB'evalCNFgtestA1testA2testA3testA4testB1showLitsAugmentingPathAlternatingPathmaximumCardinalityMatching'$maximumWeightMaximumMatchingCompleteSBVNormalizedAtom NormalizedRelNRSLtNRULtNREqlsvVars svSATSolver svTseitin svEncTable svDivRemTable svAtomTable svContexts normalizeAtom encodeExpr encodeMul encodeSum encodeNegate encodeAbs encodeShl encodeLShr encodeAShr encodeDivRem encodeSDiv encodeSRem encodeSModisEQisULTisSLT projectCases' simplifyLitcollectPDResultPDUnsat PDOptimal PDUnbounded PivotResultPivotUnbounded PivotFinished PivotSuccess normalizeRowsetRow copyObjRow isImproving primalPivot dualPivotremoveArtificialVariablespdPivot:~>~> increaseNB decreaseNBBacktrackPoint bpSavedLB bpSavedUB svTableausvLBsvUBsvVCntsvOptDirsvDefDB svRecTimesvPivotStrategysvNPivotNat$$objVarcloneBacktrackPointwithBacktrackpointbpSaveLBbpSaveUBselectViolatingBasicVariableselectEnteringVariable canIncrease canDecrease canIncrease1 canDecrease1 dualRTestprunepivotAndUpdatefindMtestLBtestUBbasicVariables recordTime showDeltalogMtest4test5test6dumpSizecheckFeasibilitycheckNBFeasibilitycheckOptimalitymDefs mBoolModel mLRAModelmBVModel mEUFModelmEUFTrue mEUFFalsemEntityToRationalmRationalToEntitymEntityToBitVecmBitVecToEntityBVAtomNormalizedBVEqlBVULtBVSLt arityVAFun withSortVArgsarityVASortFunTheorySolverIDTheorySolverEUFTheorySolverSimplexTheorySolverBVAssertionLevelalSavedNamedAssertions alSavedFDefs alSelectorsmtSATsmtEncsmtEUFsmtLRAsmtBVsmtEUFAtomDefssmtLRAAtomDefs smtBVAtomDefssmtBoolTermDefssmtRealTermDefs smtBVTermDefs smtEUFTrue smtEUFFalse smtEUFModel smtLRAModel smtBVModelsmtGlobalDeclarationsRefsmtFDefssmtNamedAssertionssmtAssertionStacksmtUnsatAssumptions smtUnsatCoreFDefFBoolVarFLRAVarFBVVarFEUFFun exprSort' exprToFormulachainpairwise abstractEq exprToLRAExprabstractLRAAtomlraExprToEUFTermlraExprFromTermbvBinOpsSameSize exprToBVExprnormalizeBVAtomunnormalizeBVAtomabstractBVAtombvExprToEUFTermbvExprFromTerm exprToEUFTerm valToEUFArg exprToEUFArgabstractEUFAtomformulaToEUFTermformulaFromEUFTermconnectBoolTerm getContextLit valToBool valToRational valToBitVec valToEntity entityToValueNodendLPndDepthndValueMIP mipRootLPmipIVsmipBest mipNThread mipLoggermipOnUpdateBestSolutionmipShowRationalbranchAndBoundviolatedderiveGomoryCutcanDeriveGomoryCutfromRatevalRatleRltRgeRgtR subst1ConstrfindEqnegateDNFConstr*data-interval-1.3.0-Gu8e0NTPiUkJqcG40UWF27 Data.Interval lowerBound upperBound projectToObj' projectTo' IntervalZBoundsZleZltZgeZgtZeqZapplySubst1Constr evalBoundsZcollectBoundsZisExactchooseVariable extractEq eliminateEqunivZ intersectZpickupZpickuptest_sat test_unsatLCMgetLCMWitnessWCase1WCase2subst1 checkedDiv testHagiyatest3 AssumptionCoeffSignConfshowCell showPoint emptySignConf showSignConfnormalizeSignConfKeylookupSignConfmr test_mr_1 test_mr_2runMassume buildSignConfcollectPolynomialsrefineSignConfemptyAssumption propagateEq propagateSignisOkay dropConstantsassumption2condcomputeSignSetshowDNFdumpProjection dumpSignConftest1atest1btest1ctest2atest2b test_projecttest_project_printtest_project_2test_project_3_print test_solvetest_collectPolynomialstest_collectPolynomials_printtest_buildSignConftest_buildSignConf_printtest_buildSignConf_2test_buildSignConf_2_printtest_buildSignConf_3test_buildSignConf_3_printGHC.NumabssignumrootstightenToIntegerstrictmkModel costOrdering elimOrderingaddArtificialVariablegetArtificialVariablesclearArtificialVariablesgetDefs isSingleVarisSingleNegatedVar expandDefs expandDefs'introduceArtificialVariablesnormalizeConstraint example_3_2test_3_2 example_3_5test_3_5 example_4_1test_4_1 example_4_2test_4_2 example_4_3test_4_3 example_4_5test_4_5 example_4_6test_4_6 example_4_7test_4_7kuhn_7_3 test_kuhn_7_3testAllErr ErrUnboundedErrUnsatndSolver ndTableau ndLowerBoundtableau'conv mkInitialNodeisStrictlyBettertraverseBBTreeexample1test1'example2catchIObindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName