1m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK 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 { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    !"""#$$$$$$$$$$%%%%%%%%%%%%%&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((((((()))))))***** * * * * **+,-------./000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102030405060708091:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\2]2^2_2`2a2b2c2d2e2f2g3h3i3j3k3l3m3n3o3p4q4r4s4t4u4v4w4x4y4z4{5|5}5~566777777777778888888888889:::;;;;;;;;;;;;;;;<<<<<<<<=========>>>???????????????@AAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDD D D D D DDDDEEEEEEEEEEEEEEE E!E"E#E$E%F&F'F(F)F*F+F,F-F.F/F0F1F2F3G4G5G6G7G8G9G:H;H<H=H>H?H@HAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSITIUIVIWIXIYIZI[I\I]I^I_I`IaJbJcJdJeKfKgKhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzL{L|L}M~MNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPQQRRRRRRRSTTUUVVVVVVVVVVVVVVVVVVVVVWWWWWWWWXXX`Y Safe-Inferred      Safe-Inferred  (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferred (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).& !   "#   !"#"# !" !   "#   Safe-Inferred$%$%$%$%(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns) Safe-Inferred' 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 2012 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses) Safe-Inferred246()  () (  )()(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (BangPatterns, FlexibleContexts, ScopedTypeVariables)None3M/%Get the internal representation array:%Get the internal representation array;%Get the internal representation array<!Pre-allocate internal buffer for n elements.*+,-./0123456789:;<*+,-./0123456789:;<-,+*.9/012345678:;<*+,-./0123456789:;<(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional[non-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, TypeSynonymInstances)None246 =6Priority queue implemented as array-based binary heap.@7Build a priority queue with default ordering ('(<)' of  class)A$Build a priority queue with a given  less than operator.BCReturn a list of all the elements of a priority queue. (not sorted)C*Remove all elements from a priority queue.D"Create a copy of a priority queue.G:Get the internal representation of a given priority queue.H:Get the internal representation of a given priority queue.I!Pre-allocate internal buffer for n elements.J!Pre-allocate internal buffer for [0..n-1] values.= >?@ABCDEF!"GHIJ#$%&'() =>?@ABCDEFGHIJ=>?@ABCD  EFGHIJ= >?@ABCDEF!"GHIJ#$%&'() (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalEnon-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns)None246 K6Priority queue implemented as array-based binary heap.M7Build a priority queue with default ordering ('(<)' of  class)N$Build a priority queue with a given  less than operator.OCReturn a list of all the elements of a priority queue. (not sorted)P*Remove all elements from a priority queue.Q"Create a copy of a priority queue.R:Get the internal representation of a given priority queue.S:Get the internal representation of a given priority queue.T!Pre-allocate internal buffer for n elements.K*+,LMNOPQ-.RST/012345 KLMNOPQRSTKLMNOPQ  RSTK*+,LMNOPQ-.RST/012345Z(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies, BangPatterns, DeriveDataTypeable, CPP)None +2468=KM/WMonic monomials[ Variable "x"].Univariate polynomials over commutative ring ri(Square-free factorization of polynomialsjfactor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..].k"Prime factorization of polynomialslfactor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..].nContent of a polynomial oPrimitive part of a polynomialp"Polynomial over commutative ring rr"total degree of a given polynomialx&construct a polynomial from a constanty+construct a polynomial from a list of terms{*construct a polynomial from a singlet term| list of terms}3leading 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)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 orderUVW6XYZ[\]^_`abcdefghijklmnop7qrstuvw89:;<=>?xyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd^UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~yUVW6XYZ[\]^_`abcdefghijklmnop7qrstuvw89:;<=>?xyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd (c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneM[(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)None24USquare-free decomposition of univariate polynomials over a field of characteristic 0.efgefg (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferred&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 hihi(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.comnon-portable (BangPatterns) Safe-Inferred*Variable are repserented positive integer.XPositive (resp. negative) literal is represented as a positive (resp. negative) integer.)List of variables interpreted as productsCoefficient and Sum of  A pair of weight and constraint. A pair of top cost and a list of soft constraints.Relational operatorsequalgreater than or equal!Lhs, relational operator and rhs.Pair of objective function and a list of constraints.4Parse a .opb file containing pseudo boolean problem.=Parse a .opb format string containing pseudo boolean problem.CParse a .wbo file containing weighted boolean optimization problem.LParse a .wbo format string containing weighted boolean optimization problem.=jklmnopqrstuvwxyz{|}~1jklmnopqrstuvwxyz{|}~(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred Safe-Inferred24 Disjunction of .kPositive (resp. negative) literals are represented as positive (resp. negative) integers. (DIMACS format).AA model is represented as a mapping from variables to its values.=Variable is represented as positive integers (DIMACS format).7Construct a literal from a variable and its polarity.  (resp *) means positive (resp. negative) literal.Negation of the .Underlying variable of the Polarity of the .  means positive literal and  means negative literal.Normalizing clause! if the clause is trivially true. 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.&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn >= b.&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn = b.+variablepolarity((*(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred Safe-Inferred$                     Safe-Inferred !"#$% !"#$% !"#$% !"#$%(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferred&Print a . in a way specified for SAT Competition. See  ,http://www.satcompetition.org/2011/rules.pdf for details.'Print a 1 in a way specified for Max-SAT Evaluation. See  &http://maxsat.ia.udl.cat/requirements/ for details.(Print a 9 in a way specified for Pseudo-Boolean Competition. See  .http://www.cril.univ-artois.fr/PB12/format.pdf for details.&'()&'()&'()&'()(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferred*+,-./0123 *+,-./0123 ,-./01+*23 *+,-./0123(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferred4BWeigths must be greater than or equal to 1, and smaller than 2^63.456789:;<=> 456789:;<=> 6789:;54<=>456789:;<=>(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred????(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred@@@@(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneC&SOS (special ordered sets) constraintsH/types of SOS (special ordered sets) constraintsIType 2 SOS constraintJType 1 SOS constraintKrelational operatorsO4type for representing lower/upper bound of variablesSvariableTlabelU4type for representing lower/upper bound of variables_ constrainteobjective functionftermsh expressionsiProblemqdefault boundsrdefault lower bound (0)sdefault upper bound (+")t convert a string into a variableu convert a variable into a stringv$looking up attributes for a variablew looking up bounds for a variablex looking up bounds for a variableDABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}@ijklmnophfge_`abcdUTSZ^]\[VWXYORQPKNMLHJICDEFGqrstuvwxz{|}ABy#ABCDEFGHJIKNMLORQPSTUVWXYZ^]\[_`abcdefghijklmnopqrstuvwxyz{|}(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone~~~~(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonevParse 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.:/  (c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred!(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportable Safe-Inferred"(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-InferredM#(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (CPP) Safe-Inferred 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 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable) Safe-Inferred+   %(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable) Safe-Inferred+   &(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-InferredM'(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalVnon-portable (BangPatterns, ScopedTypeVariables, CPP, DeriveDataTypeable, RecursiveDo)None+;CM:Ainvoked with the watched literal when the literal is falsified.   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 AInverse of the variable activity decay factor. (default 1 / 0.95) "Amount to bump next variable with.<Inverse of the constraint activity decay factor. (1 / 0.999)$Amount to bump next constraint with.(The initial restart limit. (default 100)TThe factor with which the restart limit is multiplied in each restart. (default 1.5))The initial limit for learnt constraints.[The limit for learnt constraints is multiplied with this factor periodically. (default 1.1)HControls conflict constraint minimization (0=none, 1=local, 2=recursive).will be invoked when this literal is falsified FRegister the constraint to be notified when the literal becames false.:Returns list of constraints that are watching the literal.#number of variables of the problem.number of assigned variables.number of constraints.number of learnt constrints.Create a new Solver instance.Add a new variableAdd variables. /newVars solver n = replicateM n (newVar solver)Add variables. 1newVars_ solver n = newVars solver n >> return ()!Pre-allocate internal buffer for n variables.Add a clause to the solver.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 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 lit ! c1*l1 + c2*l2 + & "e n.&Add a soft pseudo boolean constraints lit ! c1*l1 + c2*l2 + & "d n.&Add a soft pseudo boolean constraints lit ! c1*l1 + c2*l2 + & = n.Solve constraints. Returns ) if the problem is SATISFIABLE. Returns ! if the problem is UNSATISFIABLE.-Solve constraints under assuptions. Returns ) if the problem is SATISFIABLE. Returns ! if the problem is UNSATISFIABLE.After $ returns True, it returns the model.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.NSimplify the constraint database according to the current top-level assigment.default value for RestartStrategy.TThe initial restart limit. (default 100) Negative value is used to disable restart.default value for  RestartFirst.TThe factor with which the restart limit is multiplied in each restart. (default 1.5)default value for  RestartInc.%The initial limit for learnt clauses.default value for LearntSizeFirst.WThe limit for learnt clauses is multiplied with this factor each restart. (default 1.1)default value for  LearntSizeInc.WThe limit for learnt clauses is multiplied with this factor each restart. (default 1.1)default value for CCMin.#The default polarity of a variable.QThe frequency with which the decision heuristic tries to choose a random variable:Set random generator used by the random variable selection:Get random generator used by the random variable selection?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., !"#$%&'()*+,-./01234567 89:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_  `abcdefghijklmnopqrstuvwxyz{|}~ The  argument.set of literals  {l1,l2,..}" (duplicated elements are ignored)n.The  argumentset of literals  {l1,l2,..}" (duplicated elements are ignored)nThe  argumentset of literals  {l1,l2,..}" (duplicated elements are ignored)nThe  argument. set of terms [(c1,l1),(c2,l2), &]nThe  argument.list of [(c1,l1),(c2,l2), &]nThe  argument.list of terms [(c1,l1),(c2,l2), &]nThe  argument. indicator lit set of terms [(c1,l1),(c2,l2), &]nThe  argument. indicator lit set of terms [(c1,l1),(c2,l2), &]nThe  argument. indicator lit set of terms [(c1,l1),(c2,l2), &]n AssumptionsOO !"#$%&'()*+,-./01234567 ;:98< =>?@ ABCDEFGJIHK.LMNOPQRSTUVWXYZ[\]^_  `abcdefghijklmnopqrstuvwxyz{|}~ ((c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneEncoder instance'Arbitrary formula not restricted to CNF Create a Encoder instance.Use pseudo boolean constraints or use only clauses.KAssert a given formula to underlying SAT solver by using Tseitin encoding.=Return an literal which is equivalent to a given conjunction.=Return an literal which is equivalent to a given disjunction. )(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone Options for  functiondefault  valuedFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from .*(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone Options for  ,  , ^MCS candidates (see HYCAM paper for details). A MCS candidate must be a superset of real MCS. )Minimal Correction Subset of constraints. ,Minimal Unsatisfiable Subset of constraints. default  value                       +(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone,(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone -(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone"The smallest integer greater than n- that can be obtained by summing a subset of ws.  ws n.(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None/(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone0(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone)  !"#$%&'()*+,-./012345678     !"#$%&'()*+,-./012345678%&2345678#"! $'()*+,-./01 #"! $%&'()*+,-./012345678    1(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalKnon-portable (TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables)None24M >Element of model. Shallow atom Shallow termOTermR3Generalized literal type parameterized by atom typeUPredicate SymbolVFunction SymbolWVariableX.normalize a formula into a skolem normal form.TODO:Tseitin encodingY print entityH9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW X!"#Y$%&'()Z[*+,-./012#9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[#WVURTSOQPMNLKJ?IHGFEDCBA@X9:;<=>ZY[09:;<=>? IHGFEDCBA@JKLMNOQPRTSUVW X!"#Y$%&'()Z[*+,-./0122(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferred\3types that can be combined with boolean operations.ctypes that can be negated. \]^_`abcdef34 \]^_`abcdef cd\]^_`abef\]^_`abcdef34_`ab3(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferredg56789:;<=hijklmn>o?@ABC ghijklmno gkhjilmnog56789:;<=hjiklmn>o?@ABC4(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneMq$sugar strategy (not implemented yet)DEFGHIpqrstuvwxyzJKLM pqrstuvwxyz stuprqvxywz DEFGHIprqstuvwxyzJKLM5(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalYnon-portable (ScopedTypeVariables, BangPatterns, TypeSynonymInstances, FlexibleInstances)None24M|HSquare-free decomposition of univariate polynomials over a finite field.}1Berlekamp algorithm for polynomial factorization.8Input polynomial is assumed to be monic and square-free.{|NO}~PQ{|}~{|}~{|NO}~PQ6(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (BangPatterns, ScopedTypeVariables)NoneMRf|^2STRUVSTRUV\(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional6non-portable (TypeSynonymInstances, FlexibleInstances)None24WW]None24XX (c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone^UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`pqvwx|yqz{rstu}~klijmno][\YVZWXXUcdefgh`ab^_7(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (Rank2Types)NoneHM    8(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.YKClosed 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.Z[Y\  Z[Y\9None^(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone]^_`abc]^_]^_`abc:(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-InferredDisjunctive normal formlist of conjunction of literalsdede;(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (Rank2Types)NoneHMAlgebraic 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.fSame as g.hSame as i.jSame as k.lSame as m.nSame as o.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 pDegree of the algebraic number.If the algebraic number's  has degree n2, then the algebraic number is said to be degree n.&qrstuvwaepsilonaepsilonfhjlnxyz{p|}~%qrstuvwfhjlnxyz{p|}~<(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-InferredCombining 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 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)None=K 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 o.  x/ returns the greatest integer not greater than x version of m.  x) returns the least integer not less than xIs this a integer?    >(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonevParse 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.Render a problem into a string.77?(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone'@(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None  A(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-InferredA Model# is a map from variables to values.collecting free variablesMap from variablesSet of variables2Variables are represented as non-negative integersB(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportable Safe-Inferredformulas of first order logic+convert a formula into negation normal form\]^_`abcdef  C(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalOnon-portable (FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies) Safe-Inferred2468 Atomic formula.type class for constructing relational formularelational operatorsflipping relational operatorrel (flipOp op) a b is equivalent to  rel op b anegating relational operatorrel (negOp op) a b is equivalent to notB (rel op a b)operator symbol0evaluate an operator into a comparision functionconstructing relational formulaconstructing relational formulaconstructing relational formulaconstructing relational formulaconstructing relational formulaconstructing relational formulaD(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)None=K$Atomic Formula of Linear ArithmeticsnLinear combination of variables and constants. Non-negative keys are used for variables's coefficients. key  is used for constants.(a mapping from variables to coefficients Create a Expr/ from a mapping from variables to coefficients."terms contained in the expression. Create a Expr from a list of terms.6Special variable that should always be evaluated to 1.variableconstantmap coefficients.map coefficients.(evaluate the expression under the model.(evaluate the expression under the model.applySubst1 x e e1 == e1[e/x]'lookup a coefficient of the variable. $ coeff v e == fst (extract v e)  2lookup a coefficient of the variable. It returns Nothing$ if the expression does not contain v. 4 lookupCoeff v e == fmap fst (extractMaybe v e)   extract v e returns (c, e') such that e == c *^ v ^+^ e' extractMaybe 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.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.%     0          #     E(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneMNon-basic variablesBasic variablesLookup a row by basic variable$ !"#$ !"#$ !"#$ !"#$F(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneM?%&'()*+, -    ./012 !"#$%&'()*+%&'()*+,-./012),+*&('-12%./0:%&('),+* -    ./012 !"#$%&'()*+G(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone3&Complex numbers are an algebraic type.For a complex number z, , z# is a number with the magnitude of z8, but oriented in the positive real direction, whereas - z has the phase of z, but unit magnitude.5+Extracts the real part of a complex number.60Extracts the imaginary part of a complex number.7"The conjugate of a complex number.8.The nonnegative magnitude of a complex number.95The polynomial of which the algebraic number is root..Roots of the polynomial3456789./0123456345678934568973456789./01234564H(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone;Literal>'(t,c) represents t/c, and c must be >0.:;<=>?7@A8BCDEFGHI9JKLMNOPQR:;<:;<=>?@ABCDEFGHIJKLMNOPQR?>@A;=<BCDEFGHI:NORJKLMPQ:;=<>?7@A8BCDEFGHI9JKLMNOPQR:;<I(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses) Safe-Inferred246S"results of satisfiability checkingWAtomic formulaXArithmetic expressions^single variable expression_ evaluate an X with respect to a STUVWXYZ[\]^_`=>?@A:\]^_`abcdefSTUVWXYZ[\]^_`X]\[ZY^_W`SVUT SVUTWX]\[ZY^_`=>?@AJNoneabcdabcdabcdabcdKNoneefgefgefgefg_(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone;<=JLPef;=<JLfePL(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional non-portable (FlexibleInstances)None246h$quantifier-free negation normal formnLiteralPos e means e > 0Divisible 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))q+Linear arithmetic expression over integers.{&solve a (open) quantifier-free formula|&solve a (open) quantifier-free formula+BCDhijklmnopqrEFGHIsJKLMtuNvwxOyz{|PQRSTUVWhijklmnopqrstuvwxyz{|qnpouhmlkjirstvwxy{z|"BDChmlkjinpoqrEFGHIsJKLMtuNvwxOyz{|PQRSTUVWM(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone}Eeliminate quantifiers and returns equivalent quantifier-free formula.}~}~}~}~`(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional non-portable (FlexibleInstances)Nonehijklmnopqrsvxyz{|}~qnpohmlkjirsvxy}{z~|N(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneXYZ[\]^_`abcdefghijklmn  XYZ[\]^_`abcdefghijklmnO(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalInon-portable (TypeSynonymInstances, FlexibleInstances, TypeFamilies, CPP)None24=Kresults of optimizationo0feasibility 0O0a0d0d non-basic variable xj 0nP$0Y'0M0O0Y0p0feasibility 0O0a0d0d non-basic variable xj 0nP$0\0U0O0Y0-set callback function for receiving messages.dqrstuvwxyz{|}~opEEM qrstuvwxyz{|}~opP(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional.non-portable (ScopedTypeVariables, Rank2Types)NoneHM-set callback function for receiving messages.  QNoneRNone=K  S(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneM5tightening variable bounds by constraint propagation.Gtightening intervals by ceiling lower bounds and flooring upper bounds.initial bounds constraintsintegral variableslimit of iterationsTNoneU(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneV(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneMresults 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.W(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneMresults of optimizationX(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneM abcabdabefghfgifgjfgkfglfgmfgnfgofgpfgqYrstuvwxxyz{|}~   ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ            !"#$%&'()(((*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN(OPQRSTUVWXYZ[\]^_`abcdeefghijklmnopqrrstuvwxyz{{st|vxw}((~xx()((wx    !""y"#$$$$$$$$$$%%%%%%%%%%%%%&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''c(( (( ( ( ( ((((((((()))))))*********** +,---!-"-#--./0$0%0&0'0(0)0*0+0,0-0.0/0001020304050607080a0b0c0W0T0Z0[0S0\0]11191:1;1<1=1>1?1 1 1 1 11@1A1B11/11@1C11D1E1F1G1H1I1J11K1L1M1N2O2P2Q2R2S2T2U2V2W2X2Y33Z3[3\3333]3^4_4`4a444b44c4d4e4f555g5h66i77j7k7l7m7n7o7p7q7r7s8t8u8v8w8x8y8z8{8|8}8~89:::;;;;~;;;;;;;;;;;<<<<<<<<=========>w>x>???????????????(@AA~AA4A5ABB>B?B B B B BB@BABBBCCCCCCCCCCCCCCCCCCCCCDD@DDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHIIIII@IIII II IIIJ J J JKKKLLL LLALBLLLHLLLLL=LLLLLLLMMNNNNNNNNOOOOOOO O!OO"O#O$O%O&O'O(OOO)OOO*O+OO,O-O.O/OO0O1O2OO3O4OOO5OO0OO6O7O8O9O:O;O<O=O>OcO?O@PPP0PTP[PZPAPBPcPaQCQDRRRRERFRGRSHTITJUUVV!VV"VKVVLVV:VMVNVOVFVPVQVVVVRVVSWW"W!WTWUWVWW0XUXVX0YWYXYYYZY[Y\Y]Y^Y_Y`YaYbcdefghijklmnopqrstuvwxyz{|}~           ZZZdZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ     9sOP      !"#m$%&'()*+,-./0123456789:;<(=>?!@ABC#D#E$F$G$H$I$J%F%G%H%K%J&L&F&G&H&M&N'O'P'Q'R'S'T'U'V'W'X'Y'Z'['\']''^'_'`'a'a'b'c'd'e'f'g'h'i'i'j'k'l'm'n'o'p'q'q'r's't'u'v'v'w'x'y'z'{'|'}'~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')((*(+(,(-(.+/,0,0,1,2,3,4,5,/-6-0-0-1-2-/.///0$0708090:0;0<0=0>0?1@1A1B1C1D1E1F1 1G1H1I1J1K1L1M1N111O1P1Q1R1S1T11U1V1W1X1Y1Z1[1\1]1^1_1`2a2b333c3d3e3f3g3h3i3_3d3j3k3l3m4n4n4o4p4q4r4s4t4u4v5w5x55y6z6{66|6}\y]y8~888^^^^^^X^Y::;s;s;s;s;s;;;;;;;;;;u;;;;;;;;==> >>>>>>>">>>>>>V>U>>>>>>>*>1>>>>>>>3>>m>>>>>$>9>:>>8>>(>>>>>>>>>???q???????????????t?????X?@d@@@@@@@@ABBBCCCCDDDDDDDDDDEEEEEEEEEEEEEEEEFF FFFFFFFFFFF F F F F FjFFF_FFFFFFFFFFFFFFFXFFF F!F"F#F$F%F&F'F(F)F*s+,s+-G.G/GYG0G1G2G3G4G5H6H7H8HH9H:I;II<I=I>L?L@LALBLCLDLELFLGLLHLILJLKLLL0LMLNLOLPL9L:NQNRNNNBNCNDNENFNSNTNNUNVNWNXNNYNZN[N\NN]O^O_O)O`OaObOOcOOdOeOOfOgOhOiOOjOkOlOmOnOoOpOqOOOrOOsOtOuOOvOwOxOOO1O2O3OyOzO{O|O}O~PPPPPPPPPPPPPPPPqP(PPPPR>RRSSSST UUUVVVVVVVVVVWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXX/XXXYtoysolver-0.1.0ToySolver.Data.MIP ToySolver.Internal.Data.SeqQueueToySolver.VersionToySolver.Text.SDPFileToySolver.Text.GurobiSolToySolver.Internal.TextUtilToySolver.Data.Vec,ToySolver.Internal.Data.IndexedPriorityQueue%ToySolver.Internal.Data.PriorityQueueToySolver.Data.Polynomial7ToySolver.Data.Polynomial.Factorization.Hensel.Internal2ToySolver.Data.Polynomial.Factorization.SquareFreeToySolver.Data.LBoolToySolver.Text.PBFileToySolver.Converter.PB2LSPToySolver.Converter.PB2WBOToySolver.Converter.PB2SMPToySolver.Converter.SAT2PBToySolver.SAT.TypesToySolver.Converter.WBO2PBToySolver.SAT.PBO.ContextToySolver.SAT.TheorySolverToySolver.SAT.PrinterToySolver.Text.GCNFToySolver.Text.MaxSATToySolver.Converter.MaxSAT2WBOToySolver.Converter.MaxSAT2NLPBToySolver.Converter.PB2IPToySolver.Converter.MaxSAT2IPToySolver.Converter.SAT2IPToySolver.Text.MPSFileToySolver.Converter.ObjTypeToySolver.Converter.PBSetObjToySolver.KnapsackToySolver.Internal.ProcessUtilToySolver.HittingSet.SHDToySolver.HittingSet.HTCBDDToySolver.HittingSet ToySolver.SATToySolver.SAT.TseitinEncoderToySolver.SAT.MUSToySolver.SAT.CAMUSToySolver.SAT.PBO.BCToySolver.SAT.PBO.BCDToySolver.SAT.PBO.BCD2ToySolver.SAT.PBO.UnsatBasedToySolver.SAT.PBO.MSU4ToySolver.SAT.PBOToySolver.FOLModelFinderToySolver.Data.BooleanToySolver.CongruenceClosure'ToySolver.Data.Polynomial.GroebnerBasis3ToySolver.Data.Polynomial.Factorization.FiniteField2ToySolver.Data.Polynomial.Factorization.Zassenhaus#ToySolver.Data.AlgebraicNumber.Root$ToySolver.Data.AlgebraicNumber.Sturm0ToySolver.Data.Polynomial.Interpolation.LagrangeToySolver.Data.DNF#ToySolver.Data.AlgebraicNumber.RealToySolver.Internal.UtilToySolver.Data.DeltaToySolver.Text.LPFileToySolver.Converter.MIP2SMT1ToySolver.Data.Polynomial.Factorization.KroneckerToySolver.Data.VarToySolver.Data.FOL.FormulaToySolver.Data.ArithRelToySolver.Data.LAToySolver.Simplex ToySolver.CAD&ToySolver.Data.AlgebraicNumber.ComplexToySolver.FourierMotzkin.CoreToySolver.Data.FOL.ArithToySolver.Data.LA.FOLToySolver.FourierMotzkin.FOLToySolver.Cooper.CoreToySolver.Cooper.FOLToySolver.OmegaTestToySolver.Simplex2ToySolver.MIPSolver2ToySolver.OmegaTest.MiscToySolver.SAT.IntegerToySolver.BoundsInferenceToySolver.LPUtilToySolver.ContiTraversoToySolver.LPSolverToySolver.LPSolverHLToySolver.MIPSolverHLPaths_toysolverToySolver.Data.Polynomial.Base.ToySolver.Data.Polynomial.Factorization.Hensel/ToySolver.Data.Polynomial.Factorization.Integer0ToySolver.Data.Polynomial.Factorization.Rational&ToySolver.Data.AlgebraicNumber.GraeffeToySolver.FourierMotzkinToySolver.Cooper OptDir-0.0.3 Data.OptDirOptMinOptMaxOptDir queue-0.1.2Data.Queue.ClassesnewFifoNewFifo enqueueBatchenqueueEnqueue dequeueBatchdequeueDequeue queueSize QueueSizeversionpackageVersions DenseBlock DenseMatrixBlockMatrixProblem blockStructcostsmatricesmDimnBlock blockElem denseBlock denseMatrix diagBlockparseDataString parseDataFileparseSparseDataStringparseSparseDataFilerender renderSparseModelreadIntreadUnsignedIntegerSeqQueueclearIndexUVecVec GenericVecnewgetSizereadwrite unsafeRead unsafeWriteresizegrowTopushgetElemsclonegetArray getCapacityresizeCapacity PriorityQueueValuenewPriorityQueuenewPriorityQueueBymemberupdate getHeapArray getHeapVecresizeHeapCapacityresizeTableCapacity MonomialOrder UMonomialMonomial mindicesMapUTermTermX UPolynomial PrettyVar pPrintVar PrettyCoeff pPrintCoeffisNegativeCoeff PrintOptions pOptPrintVarpOptPrintCoeffpOptIsNegativeCoeffpOptMonomialOrderSQFreesqfreeFactorfactorContPPcontpp PolynomialcoeffMapDegreedegVarsvarsVarvarconstant fromTerms fromCoeffMapfromTermtermsltlclmcoeff lookupCoeff isPrimitivederivintegralevalsubstmapCoefftoMonictoUPolynomialOfdivModMPreducedefaultPrintOptions prettyPrintnatdivmoddivModdividesgcdlcmexgcdpdivModpdivpmodgcd'isRootOf isSquareFreetdegtmulttdividestdivtderiv tintegralmone mfromIndicesmfromIndicesMapmindicesmmultmpowmdividesmdivmderiv mintegralmlcmmgcdmcoprimelexrevlexgrlexgrevlexhenselcabook_proposition_5_10cabook_proposition_5_11 sqfreeChar0LBoollTruelFalselUndeflnotliftBool unliftBoolLit WeightedTermSumSoftConstraint SoftFormula wboTopCostwboConstraints wboNumVarswboNumConstraintsOpEqGe ConstraintFormulapbObjectiveFunction pbConstraints pbNumVarspbNumConstraintsparseOPBString parseOPBFileparseWBOString parseWBOFileshowOPBshowWBOconvert convertWBO PBLinExactly PBLinAtLeastPBLinSum PBLinTermAtLeastClauseLitMapLitSetIModelevalVarVarMapVarSetvalidVarlitUndefvalidLitliterallitNotlitVar litPolarityevalLitnormalizeClause clauseSubsume evalClausenormalizeAtLeast evalAtLeastnormalizePBLinSumnormalizePBLinAtLeastnormalizePBLinExactly cutResolvecardinalityReductionnegatePBLinAtLeast evalPBLinSumevalPBLinAtLeastevalPBLinExactly pbLowerBound pbUpperBound pbSubsume Normalized SimpleContextContextgetObjectiveFunctionisUnsatgetBestSolution getLowerBoundsetUnsat addSolution addLowerBound logMessage getBestValue getBestModel isOptimum isFinishedgetSearchUpperBound setFinishednewSimpleContextsetOnUpdateBestSolutionsetOnUpdateLowerBound setLogger normalize TheorySolver thAssertLitthCheck thExplainthPushBacktrackPointthPopBacktrackPoint emptyTheory satPrintModelmaxsatPrintModel pbPrintModel musPrintSolGClause GroupIndexGCNFnumVars numClauseslastGroupIndexclauses parseString parseFileWeightWeightedClauseWCNFtopCostparseByteString Variables SOSConstraintsosLabelsosTypesosBodySOSTypeS2S1RelOpEqlLe BoundExprPosInfFiniteNegInfLabelBoundsVarInfovarType varBoundsVarTypeSemiIntegerVariableSemiContinuousVariableIntegerVariableContinuousVariable constrLabelconstrIndicator constrBody constrIsLazyObjectiveFunctionExprdirobjectiveFunction constraintssosConstraintsuserCutsvarInfo defaultBounds defaultLB defaultUBtoVarfromVar getVarInfo getVarType getBoundsintersectBounds variablesintegerVariablessemiContinuousVariablessemiIntegerVariablesObjType ObjMaxZero ObjMaxOneObjNonesetObjsolverunProcessWithOutputCallbackFailureOptions optSHDCommand optSHDArgs optOnGetLineoptOnGetErrorLinedefaultOptionsminimalHittingSetsMethod MethodKnuth MethodTodaoptHTCBDDCommand optMethodRestartStrategy LubyRestarts ArminRestartsMiniSATRestarts PBHandlerTypePBHandlerTypePuebloPBHandlerTypeCounterLearningStrategyLearningHybridLearningClauseBudgetExceededSolvervarDecayActivityvarBumpActivitynVarsnAssigns nConstraintsnLearnt newSolvernewVarnewVarsnewVars_resizeVarCapacity addClause addAtLeast addAtMost addExactly addPBAtLeast addPBAtMost addPBExactlyaddPBAtLeastSoftaddPBAtMostSoftaddPBExactlySoft solveWithmodelfailedAssumptionssetRestartStrategydefaultRestartStrategysetRestartFirstdefaultRestartFirst setRestartIncdefaultRestartIncsetLearningStrategydefaultLearningStrategysetLearntSizeFirstdefaultLearntSizeFirstsetLearntSizeIncdefaultLearntSizeIncsetCCMin defaultCCMinsetVarPolarity setCheckModel setRandomFreqdefaultRandomFreq setRandomGen getRandomGen setConfBudgetdefaultPBHandlerTypesetPBHandlerTypesetEnablePhaseSavinggetEnablePhaseSavingdefaultEnablePhaseSaving"setEnableForwardSubsumptionRemoval"getEnableForwardSubsumptionRemoval&defaultEnableForwardSubsumptionRemoval#setEnableBackwardSubsumptionRemoval#getEnableBackwardSubsumptionRemoval'defaultEnableBackwardSubsumptionRemovalEncoder encSolverEquivImplyNotOrAnd evalFormula newEncodersetUsePB addFormula encodeConj encodeDisjgetDefinitions optLogger optUpdateBest optLitPrinterfindMUSAssumptions optCallbackoptMCSCandidatesMCSMUSenumMCSAssumptionsallMCSAssumptionsallMUSAssumptionsoptEnableHardeningoptEnableBiasedSearchoptSolvingNormalFirst OptimizerSearchStrategyBCD2BCDBCMSU4 UnsatBasedAdaptiveSearch BinarySearch LinearSearchdefaultSearchStrategy newOptimizeroptimizegetSearchStrategysetSearchStrategy!defaultEnableObjFunVarsHeuristicsgetEnableObjFunVarsHeuristicssetEnableObjFunVarsHeuristicsdefaultTrialLimitConfgetTrialLimitConfsetTrialLimitConf mUniverse mRelations mFunctionsEntity GenFormulaExistsForallAtomFTPAppTmVarTmAppGenLitNegPosPSymFSym toSkolemNF showEntity showModel findModelBooleantruefalse.&&..||..=>..<=>. ComplementnotBandBorBFlatTermFTAppFTConstmerge areCongruentStrategy SugarStrategyNormalStrategy optStrategy spolynomialbasisbasis' reduceGBasis berlekampbasisOfBerlekampSubalgebra zassenhaus normalizePolyrootAddrootMul rootShift rootScale rootRecip rootSimpPoly rootNthRootlift2findPoly SturmChain sturmChainnumRoots numRoots'separate separate'halvehalve'narrownarrow'approxapprox' interpolateDNFunDNFAReal realRoots realRootsExapproxIntervalnthRootrefineIsolatingIntervalminimalPolynomialisolatingInterval isRationalisAlgebraicIntegerheight rootIndex simpARealPoly goldenRatio combineMaybe isIntegerfracPart showRationalshowRationalAsFiniteDecimal revSequencerevMapMrevForMDeltadeltafromRealrealPart deltaPartfloor'ceiling' isInteger' YicesVersionYices2Yices1LanguageYICESSMTLIB2 optLanguage optSetLogic optCheckSAToptProduceModel optOptimizepushNotRelIsRelrelNEqGtLtflipOpnegOpshowOpevalOp.<..<=..>..>=..==../=. BoundsEnvunitVarasConstmapCoeffWithVarevalExpr evalLinearlift1 applySubst applySubst1extract extractMaybeshowExprshowAtomevalAtomsolveForcomputeIntervalRowColIndexRowIndexTableau emptyTableau objRowIndexpivot lookupRowaddRow setObjFun currentValuecurrentObjValueisValidTableau isFeasible isOptimalsimplex dualSimplexphaseIprimalDualSimplextoCSVCellIntervalPointRootOfproject findSampleevalCell evalPointsolve'AComplex:+imagPart conjugate magnitudeBoundsRNonnegRatExprZtoRatfromRatleRltRgeRgtRsimplify fromLAAtomtoLAAtomconstraintsToDNFproject'projectN projectN' collectBounds boundsToLits evalBounds SatResultSatUnsatUnknown:/::*::+:Const fromFOLAtom toFOLFormula fromFOLExpr toFOLExpr solveFormulaeliminateQuantifierseliminateQuantifiers' QFFormula Divisible.|. evalQFFormula projectCases projectCasesNsolveQFFormula solveQFLA optCheckRealcheckRealNoCheck checkRealByFMRawModelobjLimit OptResultObjLimit UnboundedOptimum PivotStrategyPivotStrategyLargestCoefficientPivotStrategyBlandRule SolverValuetoValue showValue GenericSolver cloneSolversetPivotStrategy assertAtom assertAtomEx assertLower assertUppergetObj setOptDir getOptDirisBasicVariableisNonBasicVariablecheckrawModel getObjValuegetLBgetUB getTableaugetValuegetRowgetColgetCoeff clearLoggerdumpsetShowRational setNThreadcheckRealByCADcheckRealBySimplex linearize addConstraintaddConstraintSoft inferBoundstoStandardFormtoStandardForm'LP emptySolver putTableaudefine#addConstraintWithArtificialVariabletableaugetModeltwoPhaseSimplexcollectNonnegVarsOptUnsatmaximizeminimizecatchIObindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName pDataFilepSparseDataFilepComment pBlockStructpCostspDenseMatricespSparseMatricesnat_lineintrealsign renderImpl renderVecshowRatconcatSsepBySbase Text.Read integer-gmpGHC.Integer.TypeIntegerreadUnsignedInt$fQueueSizeSeqQueueIO$fDequeueSeqQueueIOa$fEnqueueSeqQueueIOa$fNewFifoSeqQueueIO cloneArraycopyToghc-prim GHC.ClassesOrdheaptableupdownleftrightparent$fQueueSizePriorityQueueIO$fDequeuePriorityQueueIOInt$fEnqueuePriorityQueueIOInt$fNewFifoPriorityQueueIO$fDequeuePriorityQueueIOa$fEnqueuePriorityQueueIOa asConstantscalezeroplusnegmultisZerocontIppIprettyPrintTermaddPrecmulPrecratPrecexpPrecappPrecmfromIndicesMap'$fHashableMonomial$fVarsMonomialv$fVarMonomialv$fDegreeMonomial$fNFDataMonomial$fIsStringMonomial$fShowMonomial $fHashableX $fNFDataX $fPrettyVarX$fPrettyVarInt$fPrettyCoeffPolynomial$fPrettyCoeffPrimeField$fPrettyCoeffRatio$fPrettyCoeffInteger$fPrettyPolynomial $fContPPRatio$fContPPInteger$fDegreePolynomial$fVarsPolynomialv$fVarPolynomialv$fHashablePolynomial$fNFDataPolynomial$fShowPolynomial$fVectorSpacePolynomial$fAdditiveGroupPolynomial$fIsStringPolynomial$fNumPolynomialf$fSQFreePolynomial$fSQFreePolynomial0 $fShowLBoolformulahintsequence_of_commentscomment#sequence_of_comments_or_constraintscomment_or_constraint objective constraintsum weightedtermintegerunsigned_integerrelational_operator variablenameoneOrMoreSpacezeroOrMoreSpaceeolsemitermoneOrMoreLiterals softformula softheader'wbo_sequence_of_comments_or_constraintswbo_comment_or_constraintsoftconstraintshowSumshowWeightedTermshowLitshowConstraintshowSoftConstraintpbComputeNumVarswboComputeNumVars showConstrsum'showTerm GHC.TypesTrueFalse Data.MaybeNothing $fIModel(->) $fIModelArray$fIModelUArraynBasenObjectiveFunctionnOffsetscGetObjectiveFunction scUnsatRefscBestSolutionRefscLowerBoundRefscOnUpdateBestSolutionRefscOnUpdateLowerBoundRef scLoggerRef$fContextNormalized$fContextSimpleContextsplit isComment parseLine parseCNFLineseqList parseWCNFLineparseWCNFLineBSparseCNFLineBS parseClauseBS isCommentBSdefaultVarInfo$fVariablesSOSConstraint$fVariablesConstraint$fVariablesTerm$fVariablesProblem$fVariablesEither $fVariables[]convExprconvVarrelaxGErelaxLEmtransM BoundTypeSISCUILIBVPLMIFRFXUPLOColumnspace'spaces'spaces1' commentlinenewline'tokrowcolumnidentstringLnnumbermpsfile nameSectionobjSenseSectionobjNameSection rowsSectionuserCutsSectionlazyConsSectionrowsBody colsSection rowAndVal rhsSection rangesSection boundsSection boundType sosSectionquadObjSectionqMatrixSectionqcMatrixSectionindicatorsSectionrender' writeString writeCharwriteSectionHeader writeFieldsnameRows quadMatrixcheckAtMostQuadraticgenObjprocess-1.2.0.0System.Processproc withForkWait ignoreSigPipe HittingSet HyperEdgeVertexexecSHD$fExceptionFailure execHTCBDD HyperEdge'propagateChoicemaintainNoSupersetsbasicPropagatewatchSomeConstraintHandler basicReasonOf svVarDecaysvVarInc svConstrDecay svConstrIncsvRestartFirst svRestartIncsvLearntSizeFirstsvLearntSizeIncsvCCMin ldWatcheswatches backtrackTo propagatereasonOfPBHandlerPueblo puebloTerms puebloDegreepuebloMaxSlack puebloWatchespuebloWatchSumpuebloActivity puebloHashPBHandlerCounterpbTermspbDegree pbCoeffMap pbMaxSlackpbSlack pbActivitypbHashAtLeastHandler atLeastLits atLeastNumatLeastActivity atLeastHash ClauseHandlerclaLits claActivityclaHash CHPBPueblo CHPBCounter CHAtLeastCHClauseConstraintHandlertoConstraintHandlershowConstraintHandlerattachwatchedLiterals toPBAtLeast isSatisfiedconstrIsProtected constrWeightconstrReadActivityconstrWriteActivity SearchResultSRBudgetExceeded SRRestart SRFinished VarActivitysvOk svVarQueuesvTrail svVarCounter svVarData svConstrDB svLearntDB svAssumptionssvLevel svBCPQueuesvModel svNDecisionsvNRandomDecision svNConflict svNRestart svNAssignssvNFixed svNLearntGCsvNRemovedConstrsvRestartStrategy svLearntLimsvLearntLimAdjCntsvLearntLimSeqsvEnablePhaseSaving!svEnableForwardSubsumptionRemovalsvLearningStrategysvPBHandlerType"svEnableBackwardSubsumptionRemovalsvLogger svStartWC svLastStatWC svCheckModel svRandomFreq svRandomGensvFailedAssumptions svConfBudgetLitData ldOccurListVarData vdAssignment vdPolarity vdPosLitData vdNegLitData vdActivity AssignmentaValueaIndexaLevelaReason aBacktrackCBsLevel levelRoot newVarData newLitDatavarDatalitDatavarValuelitValuevarLevellitLevel varReason varAssignNomarkBad bcpEnqueue bcpDequeue bcpCheckEmptyassignByassignassign_unassignaddBacktrackCBaddToDB addToLearntDBreduceDB varActivityvarRescaleAllActivitylearntConstraintsltVarsolve_searchcheckForwardSubsumptionremoveBackwardSubsumedBybackwardSubsumedByremoveConstraintHandlers pickBranchLitdecidededuceanalyzeConflict analyzeFinalanalyzeConflictHybridpbBacktrackLevelminimizeConflictClauseminimizeConflictClauseLocalminimizeConflictClauseRecursivepopTrailconstructModelconstrDecayActivityconstrBumpActivityconstrRescaleAllActivity resetStatprintStatHeader printStat showTimeDiffdetachisLocked findForWatchnewClauseHandlerinstantiateClausebasicAttachClauseHandlernewAtLeastHandlerinstantiateAtLeastbasicAttachAtLeastHandler newPBHandlernewPBHandlerPromoted instantiatePB pbOverSAT pbToAtLeastnewPBHandlerCounter puebloAMaxnewPBHandlerPueblopuebloGetWatchSum puebloWatch puebloUnwatchpuebloPropagatepuebloUpdateWatchSum mkRestartSeqminiSatRestartSeqarminRestartSeqlubyRestartSeqlubyallManyMshiftdefaultHashWithSalt debugModecheckSatisfied sanityCheckdumpVarActivitydumpConstrActivityloglogIO"$fConstraintHandlerPBHandlerPueblo$fHashablePBHandlerPueblo$fEqPBHandlerPueblo#$fConstraintHandlerPBHandlerCounter$fHashablePBHandlerCounter$fEqPBHandlerCounter!$fConstraintHandlerAtLeastHandler$fHashableAtLeastHandler$fEqAtLeastHandler $fConstraintHandlerClauseHandler$fHashableClauseHandler$fEqClauseHandler($fConstraintHandlerSomeConstraintHandler$fHashableSomeConstraintHandler$fExceptionBudgetExceededencUsePB encConjTableencodeToClause encodeToLit addIsConjOfsolveWBOCoreInfocoreLitscoreLBcoreUB coreMidValue coreUnionrefine optContext optSolveroptSearchStrategyRef optEnableObjFunVarsHeuristicsRefoptTrialLimitConfRef linSearch binSearchadaptiveSearch tweakParamsSGenAtomSGenTermSubst GroundClause GroundLit GroundAtom GroundTermSClauseSLitSAtomSTermSEqSPAppSTmVarSTmApptoNNFtest_toSkolemNFflatten test_flattenshowEntityTuple enumSubstsimplifyGroundClause collectFSym collectPSymtesttest2$fVarsSGenAtom$fVarsSGenTerm$fVarsGenFormula $fVarsAtom $fVarsTerm $fVarsGenLit$fVars[] $fBooleanBool$fComplementBool svPendingsvRepresentativeTable svClassList svUseList svLookupTable PendingEqnEqn1lookup setLookup addToPendinggetRepresentativeItemiFstiSndiCmpiLCMitempairs$fEqItem $fOrdItemsqfree' polyPthRoot$fFactorPolynomialnorm2sqliftdiv'combboundscountSignChanges countChanges boundIntervalNthRootgraeffesMethodf' $fBooleanDNF$fComplementDNFproperFraction'GHC.RealproperFraction truncate'truncateround'roundceilingfloor $fDegreeARealRealRoot realRoots'realRoot realRoot' scaleAReal shiftARealnthRoots$fPrettyCoeffAReal $fPrettyAReal$fRealFracAReal $fRealAReal$fFractionalAReal $fNumAReal $fOrdAReal $fEqAReal$fVectorSpaceDelta$fAdditiveGroupDeltaBounds2char'string'sepvariablelabelreservedlpfileproblemendconstraintSection subjectTorelOplazyConstraintsSectionbound boundExprinfgeneralSection binarySection semiSectionexprqexprqtermqfactorwriteVar renderExpr showCoeff showConstTerm renderLabelrenderOprenderConstraintrenderBoundExprrenderVariableListfillremoveEmptyExprEnvunlinesSlistand'or'not'intExprrealExprintNumrealNumtoRealassert conditionsnonAdjacentPairsencodeisInttestFiletestdatafactor'factor2isUPolyZtoZxvalues interleavefactors primeFactors$fBooleanFormula$fComplementFormula$fVariablesFormula $fFunctorRel$fVariablesRel $fIsReleRel$fComplementRel normalizeExpr showExprWith$fVectorSpaceExpr$fAdditiveGroupExpr $fNFDataExpr $fReadExpr $fShowExpr$fVariablesExprPDResult PDUnbounded PDOptimalPDUnsat PivotResult PivotSuccess PivotFinishedPivotUnbounded normalizeRowsetRow copyObjRow isImproving primalPivot dualPivotremoveArtificialVariablespdPivot 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.Numabssignumrootstest1test3test4test5test6$fFractionalAComplex $fNumAComplexnormalizeExprRevalRatatomR'$fComplementLit$fVariablesLit$fIsRelExprFormula $fFunctorExpr$fFractionalExpr $fNumExprWitnessWCase2WCase1leZltZgeZgtZeqZsubst1 simplify1 simplifyLit evalWitness projectCases' testHagiya$fIsRelExprQFFormula$fVariablesQFFormula$fBooleanQFFormula$fComplementQFFormula IntervalZBoundsZcollectBoundsZisExactchooseVariable evalBoundsZelimEqapplySubst1LitunivZ intersectZpickupZzmodpickup increaseNB decreaseNB svTableausvLBsvUBsvVCntsvOptDirsvDefDBsvPivotStrategysvNPivotobjVar simplifyAtomselectViolatingBasicVariableselectEnteringVariable canIncrease canDecrease canIncrease1 canDecrease1 dualRTestprunepivotAndUpdatefindMtestLBtestUBbasicVariables recordTime showDeltadumpSizecheckFeasibilitycheckNBFeasibilitycheckOptimality$fSolverValueDelta$fSolverValueRatioNodendLPndDepthndValueMIP mipRootLPmipIVsmipBest mipNThread mipLoggermipOnUpdateBestSolutionmipShowRationalbranchAndBoundviolatedderiveGomoryCutcanDeriveGomoryCuttightenToIntegerCstrictmkModel 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_3testAllErrErrUnsat ErrUnboundedndSolver ndTableau ndLowerBoundtableau'conv mkInitialNodeisStrictlyBettertraverseexample1test1'example2