9<      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw x y z { | } ~    !!!!"#########$$$$$$$$$$$%%%%%%%%%%%%&&&&&&&&&&&'((()))))))))))))********+++++++++     ,,,,,,,,,,,--./0012 2!2"2#2$2%3&3'3(3)3*3+3,3-3.3/304142434445464748494:4;4<4=4>4?4@4A4B4C4D4E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5\5]5^5_5`6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p8q8r9s9t:u:v:w:x:y:z:{:|:}:~::::::::::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<========>>>>>>>???@@@@@@@@@@@@@@AABBBBBBBBBBBBBBBCCCCCCCCCCCCDDDDD D D D D DDDDDEEEEFFFGGGGGGG G!G"G#G$G%G&G'G(G)G*G+G,G-G.H/H0I1I2I3I4I5I6I7I8J9J:J;SK Safe-Inferred <=>?@ABCDEABCDE <=>?@ABCDEportable provisionalmasahiro.sakai@gmail.com Safe-Inferred )the block strcuture vector (bLOCKsTRUCT) Constant Vector Constraint 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). & FGHIJKLMNOPQRSTUV   " FGHIJKLMNOPQRSTUV Safe-InferredLnon-portable (BangPatterns) provisionalmasahiro.sakai@gmail.com Safe-InferredWX allocate too many intermediate Y. 9 Therefore we use this optimized implementation instead. C Many intermediate values in this implementation will be optimized 5 away by worker-wrapper transformation and unboxing. Z[WZWZ[WM7non-portable (FlexibleInstances, MultiParamTypeClasses) provisionalmasahiro.sakai@gmail.com Safe-Inferred\]^_`ab cdefghijkl\^\]^_`abN[non-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, TypeSynonymInstances) provisionalmasahiro.sakai@gmail.comNonem7Priority queue implemented as array-based binary heap. n.Build a priority queue with default ordering ('(<)' of o class) p$Build a priority queue with a given  less than operator. qDReturn a list of all the elements of a priority queue. (not sorted) r+Remove all elements from a priority queue. s#Create a copy of a priority queue. t;Get the internal representation of a given priority queue. muvwxyznpqrs{|}~tcdefghijklmyznpqrs{|tmuvwxyznpqrs{|}~tOnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies, BangPatterns, DeriveDataTypeable) provisionalmasahiro.sakai@gmail.comNone%Monic monomials #/Univariate polynomials over commutative ring r /)Square-free factorization of polynomials 0factor a polynomial p into p1 ^ n1 + p2 ^ n2 + .. and  return a list [(p1,n1), (p2,n2), ..]. 1Factorization of polynomials 2factor a polynomial p into p1 ^ n1 + p2 ^ n2 + .. and  return a list [(p1,n1), (p2,n2), ..]. 4Content of a polynomial 5Primitive part of a polynomial 6#Polynomial over commutative ring r 8#total degree of a given polynomial >'construct a polynomial from a constant ?0construct a polynomial from a list of monomials A'construct a polynomial from a monomial Blist of monomials C4leading term with respect to a given monomial order D;leading coefficient with respect to a given monomial order E8leading monomial with respect to a given monomial order I!Formal derivative of polynomials JFormal integral of polynomials K Evaluation LSubstitution or bind R Multivariate division algorithm S Multivariate division algorithm V#division of univariate polynomials W#division of univariate polynomials X#division of univariate polynomials ZGCD of univariate polynomials [LCM of univariate polynomials \Extended GCD algorithm ]pseudo division ^pseudo quotient _pseudo reminder `GCD of univariate polynomials tLexicographic order uReverse lexicographic order. *Note that revlex is NOT a monomial order. vGraded lexicographic order w#Graded reverse lexicographic order  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwt !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwAnon-portable (ScopedTypeVariables, BangPatterns, TemplateHaskell) provisionalmasahiro.sakai@gmail.comNonexxxxDnon-portable (BangPatterns, TypeSynonymInstances, FlexibleInstances) provisionalmasahiro.sakai@gmail.comNoneyVSquare-free decomposition of univariate polynomials over a field of characteristic 0. yyyyportable provisionalmasahiro.sakai@gmail.com Safe-Inferredz&Lifted Bool type. It has three values {, |, }. {lifted true value |lifted false value }undefined truth value ~   lnot lTrue == lFalse  lnot lFalse == lTrue  lnot lUndef == lUndef    liftBool True == lTrue  liftBool False == lFalse   ! unliftBool lTrue == Just True # unliftBool lFalse == Just False  unliftBool lUndef == Nothing  z{|}~z{|}~z{|}~z{|}~ non-portable (BangPatterns)masahiro.sakai@gmail.com Safe-Inferred+Variable are repserented positive integer. YPositive (resp. negative) literal is represented as a positive (resp. negative) integer. *List of variables interpreted as products Coefficient and  Sum of  !A pair of weight and constraint.  A pair of top cost! and a list of soft constraints. Relational operators equal greater than or equal "Lhs, relational operator and rhs. Pair of objective function and a list of constraints. 5Parse a .opb file containing pseudo boolean problem. >Parse a .opb format string containing pseudo boolean problem. DParse a .wbo file containing weighted boolean optimization problem. MParse a .wbo format string containing weighted boolean optimization problem. 20 portable experimentalmasahiro.sakai@gmail.com Safe-Inferred portable experimentalmasahiro.sakai@gmail.com Safe-Inferred portable experimentalmasahiro.sakai@gmail.com Safe-Inferred portable experimentalmasahiro.sakai@gmail.com Safe-Inferred Safe-Inferred Disjunction of . FPositive (resp. negative) literals are represented as positive (resp. & negative) integers. (DIMACS format). BA model is represented as a mapping from variables to its values. >Variable is represented as positive integers (DIMACS format). 6Construct 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.  variable  polarity portable experimentalmasahiro.sakai@gmail.com Safe-Inferred Safe-Inferredportable provisionalmasahiro.sakai@gmail.com Safe-InferredPrint a ) in a way specified for SAT Competition.  See  ,http://www.satcompetition.org/2011/rules.pdf for details. Print a , in a way specified for Max-SAT Evaluation.  See  &http://maxsat.ia.udl.cat/requirements/ for details. Print a 4 in a way specified for Pseudo-Boolean Competition.  See  .http://www.cril.univ-artois.fr/PB12/format.pdf for details. portable provisionalmasahiro.sakai@gmail.com Safe-Inferred portable provisionalmasahiro.sakai@gmail.com Safe-Inferred!should be able to represent 2^63  portable experimentalmasahiro.sakai@gmail.com Safe-Inferredportable experimentalmasahiro.sakai@gmail.com Safe-Inferredportable experimentalmasahiro.sakai@gmail.com Safe-Inferredportable experimentalmasahiro.sakai@gmail.com Safe-InferredVnon-portable (BangPatterns, RecursiveDo, ScopedTypeVariables, CPP, DeriveDataTypeable) provisionalmasahiro.sakai@gmail.comNone8@invoked with the watched literal when the literal is falsified.   0g  0T|0sQ0W0f heap allocation 0Lvzu0Y00n0  0Q00_00k0QC0n  0n!0W0f0J0O0 6deduce a clause C"(l from the constraint and return C. A C and l should be false and true respectively under the current  assignment. Solver instance :Inverse of the variable activity decay factor. (default 1 / 0.95) #Amount to bump next variable with. 0Inverse of the clause activity decay factor. (1 / 0.999) !Amount to bump next clause with. )The initial restart limit. (default 100) UThe factor with which the restart limit is multiplied in each restart. (default 1.5) &The initial limit for learnt clauses. XThe limit for learnt clauses is multiplied with this factor periodically. (default 1.1) EControls conflict clause minimization (0=none, 1=local, 2=recursive) /will be invoked when this literal is falsified GRegister 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 clauses. number of learnt constrints. Create a new Solver instance. Add a new variable Add variables. /newVars solver n = replicateM n (newVar solver) Add variables. 2newVars_ solver n >> return () = newVars_ solver n 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 0 returns False, it returns a set of assumptions D that leads to contradiction. In particular, if it returns an empty ; set, the problem is unsatisiable without any assumptions. KSimplify the clause database according to the current top-level assigment. default value for RestartStrategy. )The initial restart limit. (default 100) , Negative value is used to disable restart. default value for  RestartFirst. UThe 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. XThe limit for learnt clauses is multiplied with this factor each restart. (default 1.1)  default value for  LearntSizeInc.  XThe limit for learnt clauses is multiplied with this factor each restart. (default 1.1)  default value for CCMin.  $The default polarity of a variable. RThe frequency with which the decision heuristic tries to choose a random variable &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. 6deduce a clause C"(l from the constraint and return C. A C and l should be false and true respectively under the current  assignment. .set callback function for receiving messages.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgThe  argument. set of literals  {l1,l2,..}# (duplicated elements are ignored) n. The  argument set of literals  {l1,l2,..}# (duplicated elements are ignored) n The  argument set of literals  {l1,l2,..}# (duplicated elements are ignored) n The  argument.  set of terms [(c1,l1),(c2,l2), &] n The  argument. list of [(c1,l1),(c2,l2), &] n The  argument. list of terms [(c1,l1),(c2,l2), &] n The  argument.  indicator lit  set of terms [(c1,l1),(c2,l2), &] n The  argument.  indicator lit  set of terms [(c1,l1),(c2,l2), &] n The  argument.  indicator lit  set of terms [(c1,l1),(c2,l2), &] n  Assumptions hi     jklmnopqrstuvwxyz{|}~?     ?           * !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi     jklmnopqrstuvwxyz{|}~portable provisionalmasahiro.sakai@gmail.comNoneEncoder instance (Arbitrary formula not restricted to CNF  Create a Encoder instance. Use pseudo boolean constraints or use only clauses. 9Assert 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.      non-portable provisionalmasahiro.sakai@gmail.comNone! Options for ' function &default ! value ':Find a minimal set of assumptions that causes a conflict. * Initial set of assumptions is taken from . !"#$%&'!"#$%&'!"#$%&'!"#$%&'portable provisionalmasahiro.sakai@gmail.comNone( Options for /, 0, 1 .default ( value ()*+,-./012 ()*+,-./012 -,()*+.01/2 ()*+,-./012non-portable (BangPatterns) provisionalmasahiro.sakai@gmail.comNone3456789:3456789:3456789:3456789:portable provisionalmasahiro.sakai@gmail.comNone;<=>?@AB;<=>?@AB;<=>?@AB;<=>?@ABportable provisionalmasahiro.sakai@gmail.comNoneCDEFGHIJKLMNOPQRSCDEFGHIJKLMNOPQRSKPONMLCDEFGHIJQRSCDEFGHIJKPONMLQRSKnon-portable (TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNone YElement of model.  Shallow atom  Shallow term jTerm m4Generalized literal type parameterized by atom type pPredicate Symbol qFunction Symbol r Variable s/normalize a formula into a skolem normal form. TODO:  Tseitin encoding t print entity HTUVWXYZ[\]^_`abcdefghijklmnopqrstuv#TUVWXYZ[\]^_`abcdefghijklmnopqrstuv#rqpmonjlkhigfeZdcba`_^]\[sTUVWXYutv0TUVWXYZ dcba`_^]\[efghijlkmonpqrstuv "non-portable (ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNonex%sugar strategy (not implemented yet) wxyz{|}~ wxyz{|}~ z{|wyx}~ wyxz{|}~!Ynon-portable (ScopedTypeVariables, BangPatterns, TypeSynonymInstances, FlexibleInstances) provisionalmasahiro.sakai@gmail.comNoneISquare-free decomposition of univariate polynomials over a finite field. 2Berlekamp algorithm for polynomial factorization. 9Input polynomial is assumed to be monic and square-free.  "0non-portable (BangPatterns, ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNonef|^2  P6non-portable (TypeSynonymInstances, FlexibleInstances) provisionalmasahiro.sakai@gmail.comNoneQNone#portable provisionalmasahiro.sakai@gmail.com Safe-Inferred  $9non-portable (FlexibleInstances, DeriveDataTypeable, CPP) provisionalmasahiro.sakai@gmail.comNone  portable provisionalmasahiro.sakai@gmail.comNone] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw_67<=>B?7@A89:;CDEFGHM12/0345IJKLOPQRS#!"VWXYZ[\]^_`N abcdefghijklmnopqrstuvw)*+,-.TU&'($%%portable provisionalmasahiro.sakai@gmail.comNoneSturm'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. DClosed interval that contains all real roots of a given polynomial.  h90nPuL   =http://aozoragakuen.sakura.ne.jp/taiwa/taiwaNch02/node26.html YDisjoint 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.   &non-portable (Rank2Types) provisionalmasahiro.sakai@gmail.comNone    'None(portable provisionalmasahiro.sakai@gmail.comNone)non-portable (Rank2Types) provisionalmasahiro.sakai@gmail.comNoneAlgebraic real numbers. 1Real roots of the polynomial in ascending order. 1Real 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 a 6The polynomial of which the algebraic number is root. ,Whether the algebraic number is a rational. DWhether the algebraic number is a root of a polynomial with integer ' coefficients with leading coefficient 1 (a monic polynomial).  Height of the algebraic number. HThe height of an algebraic number is the greatest absolute value of the H 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 n, 0 then the algebraic number is said to be degree n. %a epsilon a epsilon    !"  $   !"*portable provisionalmasahiro.sakai@gmail.com 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) +non-portable (TypeFamilies) provisionalmasahiro.sakai@gmail.comNone 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 x Is this a integer? #$   #$portable provisionalmasahiro.sakai@gmail.comNone'SOS (special ordered sets) constraints 0types of SOS (special ordered sets) constraints Type 2 SOS constraint Type 1 SOS constraint relational operators type for representing lower/upper bound of variables  variable label type for representing lower/upper bound of variables  constraint objective function terms  expressions Problem default bounds default lower bound (0) default upper bound (+") %looking up attributes for a variable !looking up bounds for a variable !looking up bounds for a variable  (Parse a string containing LP file data. O 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. o%&'()   *+,-./0123456789:;<=>?@ABCDEFGHIJK LMNOPQRSTUVWXYZ<    <    O%&'()   *+,-./0123456789:;<=>?@ABCDEFGHIJK LMNOPQRSTUVWXYZ,portable experimentalmasahiro.sakai@gmail.comNone [\ ]^_`abcdefghijklmno    [\ ]^_`abcdefghijklmno-portable experimentalmasahiro.sakai@gmail.comNone pqrstuv pqrstuv.portable experimentalmasahiro.sakai@gmail.comNone/portable experimentalmasahiro.sakai@gmail.comNone0portable provisionalmasahiro.sakai@gmail.comNone(Parse a string containing LP file data. O The source name is only | used in error messages and may be the empty string. &Parse a file containing LP file data. ,wxyz{|}~"w ~}|{zyx1non-portable (BangPatterns) provisionalmasahiro.sakai@gmail.comNone  2portable provisionalmasahiro.sakai@gmail.com Safe-InferredA Model$ is a map from variables to values.  collecting free variables "Map from variables #Set of variables $3Variables are represented as non-negative integers  !"#$ !"#$$#" ! !"#$3portable provisionalmasahiro.sakai@gmail.com Safe-Inferred%4types that can be combined with boolean operations. (types that can be negated. * alias of  + alias of  , alias of  - alias of  . alias of  / alias of  %&'()*+,-./ %&'()*+,-./ ()%&'*+,-./%&'()*+,-./4Onon-portable (FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies) provisionalmasahiro.sakai@gmail.com Safe-Inferred 0Atomic formula 2/type class for constructing relational formula 4relational operators ;flipping relational operator rel (flipOp op) a b is equivalent to  rel op b a <negating relational operator rel (negOp op) a b is equivalent to notB (rel op a b) =operator symbol >1evaluate an operator into a comparision function ? constructing relational formula @ constructing relational formula A constructing relational formula B constructing relational formula C constructing relational formula D constructing relational formula 0123456789:;<=>?@ABCD0123456789:;<=>?@ABCD4:98765;<=>0123?@BACD01234:98765;<=>?@ABCD5non-portable (TypeFamilies) provisionalmasahiro.sakai@gmail.comNoneF%Atomic Formula of Linear Arithmetics G/Linear 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 coefficients I Create a Expr0 from a mapping from variables to coefficients. J#terms contained in the expression. K Create a Expr from a list of terms. L7Special variable that should always be evaluated to 1. N variable O constant Pmap 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)   X&lookup a coefficient of the variable.  It returns Nothing$ if the expression does not contain v.   2 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. ^2Solve 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. %EFGHIJKLMNOPQRSTUVWXYZ[\]^_EFGHIJKLMNOPQRSTUVWXYZ[\]^_GHNOJKHILMWXYZPQRSTUV[F\]^E_#EFGHIJKLMNOPQRSTUVWXYZ[\]^_60non-portable (ScopedTypeVariables, BangPatterns) provisionalmasahiro.sakai@gmail.comNone`6tightening variable bounds by constraint propagation. Htightening intervals by ceiling lower bounds and flooring upper bounds. `initial bounds  constraints integral variables limit of iterations E_`E`_`7"non-portable (ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNoneabcdefghijklmnoabcdefghijklmnoedcbafghijklmnoabcdefghijklmno8Nonepqpqpqpq9portable provisionalmasahiro.sakai@gmail.comNonersrsrsrs:"non-portable (ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNonetuvwxyz{|}~tuvwxyz{|}~utvwxyz{|}~tuvwxyz{|}~;"non-portable (ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNoneresults of optimization <Inon-portable (TypeSynonymInstances, FlexibleInstances, TypeFamilies, CPP) provisionalmasahiro.sakai@gmail.comNoneresults of optimization +feasibility 0O0a0d0d non-basic variable xj 0nP$0Y'0M0O0Y0 1feasibility 0O0a0d0d non-basic variable xj 0nP$0\0U0O0Y0 .set callback function for receiving messages. d     E456789:?@ABCFE4:98765@BC?AFM      =.non-portable (ScopedTypeVariables, Rank2Types) provisionalmasahiro.sakai@gmail.comNone.set callback function for receiving messages.  !"#$%&'()*+, !"#$%&'()*+,>None -./ -./?portable provisionalmasahiro.sakai@gmail.com Safe-InferredDisjunctive normal form  list of conjunction of literals 01234567 01234567@0non-portable (ScopedTypeVariables, BangPatterns) provisionalmasahiro.sakai@gmail.comNone589:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^089:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ANoneBportable provisionalmasahiro.sakai@gmail.comNoneLiteral (t,c) represents t/c, and c must be >0. _`abcdefghijklmn_`abcdefghijklmnCportable provisionalmasahiro.sakai@gmail.com Safe-Inferredformulas of first order logic ,convert a formula into negation normal form opqrstuvw%&'()*+,-./   opqrstuvwD7non-portable (FlexibleInstances, MultiParamTypeClasses) provisionalmasahiro.sakai@gmail.com Safe-Inferred#results of satisfiability checking Atomic formula  Arithmetic expressions single variable expression  evaluate an   with respect to a       xyz{|:%&'()*+,-./0123456789:;<=>?@ABCD                xyz{|ENoneFNoneRportable provisionalmasahiro.sakai@gmail.comNoneG non-portable (FlexibleInstances) provisionalmasahiro.sakai@gmail.comNone%quantifier-free negation normal form Literal  Pos e means e > 0  Divisible 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)) ",Linear arithmetic expression over integers. ,'solve a (open) quantifier-free formula -'solve a (open) quantifier-free formula 1}~ !"#$%&'()*+,- !"#$%&'()*+,-"! &#$%'()*,+-(}~! "#$%&'()*+,-Hportable provisionalmasahiro.sakai@gmail.comNone.Feliminate quantifiers and returns equivalent quantifier-free formula. ././././S non-portable (FlexibleInstances) provisionalmasahiro.sakai@gmail.comNone !"#$')*+,-./"! #$')*.,+/-Iportable provisionalmasahiro.sakai@gmail.comNone01234567 01234567 6701234501234567J"non-portable (ScopedTypeVariables) provisionalmasahiro.sakai@gmail.comNone89: 89:98:89: Safe-Inferred;;;;TUVTUWTUXKYZ[\]^^_`abcdefghijklmnlOoOpOqOrOsOtOuOuOvOwOxOyOzO{O|O|O}O~OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO   t          n         !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcd__`efgchijk__`alc:m__`alc:m__`alnopqrstuvcwxnnyz{|}~UVWXYt    _ _  c    !!!!"#%#####,#-##$$$$$$$$$$$%%%%%%%%%%%%&&&&&&&&&&&'((()))))))))))))********+++++++++ttl, , , ,_,_, , ,,,c,--./0012n2222233333333333444444 44!444"4#4$4%4&4'4(4)4*4+4,5-5555555.5/55550515253545555565758595:5;5<6=7>7?7@7A7B7C7D7E7F7G7H7I7J7K7L8M8N9:9O::%:P:Q:R:S:T:U:V:W:X:Y:Z:[:\:]:^:K:I:J:_:`;a;b;c;d;e;w;:;f<n<g<_<_<h<a<i<c<j<b<k<l<m<n<o<p<<<%<q<<,<r<s<-<t<u<v<w<<x<y<z<(<{<|<}<~<<c<f<J<<<<<R<<<<<R<<=%=,=f=<====R>>>->>Y>>???@n@@@@@@@@@@@@:@OAABBBBBBBBBBBBBB:BOCC~CCUCVCWCXCYCCCCDDDjDDDDDDDDDD1D:EEEEFFFGGGGGGGGGGGGGGGGGGGG:GHHI_I_IIcIII:IJeJwJfKKKKKKKKKKLLLMMMMMMMNNNNNNNNNNNNNNNNN N N N N NNNNOqOOOOOOOOOOOOOOOOO O!O"O#O$O%O&O'O(O)O*O+O,O-O.O/O0O1O2O3O4O5O6O7O8O9:;<=>?@AB 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`bcdefghifjhiklmnopqrstuvwxyz{|}~^%     S !"#$%&'()*+,-./01234456789:;<=>? @ @ A B C D E F G H!I!!!J!@!K"L"M"N""O"P"Q"R"SPKQK#%##T#U#V#W#X#Y#Z#~##[#\#]#^$_$`$a$b$c$d$e$f$g$h$i%j%k%l%m(?(n(7(8)opq)rps)tpu)pv)pw)x)y)z){)|))})~)))))))))))++EweITp,,,,,,,,,,,,,,I,,F,,,,7,-------000000000000?00000000000000000000000000000011111111124444555555555 5 6 6 6?6 7777777}7~777777778%999;; ;!;";#;$;%;&;';(;);*;+;,;-;.;;;/<0<1<q<2<3<4<<5<<6<7<<8<9<:<;<F<<<=<><?<@<A<B<C<<D<D<<E<F<G<<H<I<J<<<K<L<M<N<O<P<Q<R<S=T=T=U=V=W=X=Y=Z=[=\=]=^=_=`=C=p===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@{@|@}@~@@@@@@7@@@@@@@@@@@@@BBBB|BBBBBBBBBBBBCCCCCCCCCDD DDDcGGGGGGGGGG|GGGGGGGGGGGGGGGGGGIIII|IIIIIIIIOIIIIIIIIIzIIJJJJTJTJJVJJJJJJJJJJJJ8toysolver-0.0.6 Text.LPFileVersion Text.SDPFileText.GurobiSolData.Polynomial$Data.Polynomial.Factorization.Hensel(Data.Polynomial.Factorization.SquareFree Data.LBool Text.PBFileConverter.PB2LSPConverter.PB2WBOConverter.PB2SMPConverter.SAT2PB SAT.TypesConverter.WBO2PBSAT.TheorySolver SAT.Printer Text.GCNF Text.MaxSATConverter.MaxSAT2WBOConverter.MaxSAT2NLPBConverter.ObjTypeConverter.PBSetObjSATSAT.TseitinEncoderSAT.MUS SAT.CAMUSSAT.PBO.UnsatBased SAT.PBO.MSU4SAT.PBOAlgorithm.FOLModelFinderData.Polynomial.GroebnerBasis)Data.Polynomial.Factorization.FiniteField(Data.Polynomial.Factorization.ZassenhausAlgorithm.CongruenceClosure Data.Sign$Data.Polynomial.RootSeparation.SturmData.AlgebraicNumber.Root&Data.Polynomial.Interpolation.Lagrange&Data.Polynomial.RootSeparation.GraeffeData.AlgebraicNumber.RealUtil Data.DeltaConverter.LP2SMTConverter.PB2LPConverter.MaxSAT2LPConverter.SAT2LP Text.MPSFile'Data.Polynomial.Factorization.KroneckerData.VarAlgebra.Lattice.Boolean Data.ArithRelData.LAAlgorithm.BoundsInferenceAlgorithm.SimplexAlgorithm.LPUtilAlgorithm.ContiTraversoAlgorithm.LPSolverAlgorithm.LPSolverHLAlgorithm.Simplex2Algorithm.MIPSolver2 SAT.IntegerData.DNF Algorithm.CADAlgorithm.OmegaTest.MiscAlgorithm.FourierMotzkin.CoreData.FOL.FormulaData.FOL.Arith Data.LA.FOLAlgorithm.FourierMotzkin.FOLAlgorithm.Cooper.CoreAlgorithm.Cooper.FOLAlgorithm.OmegaTestAlgorithm.MIPSolverHLPaths_toysolver Text.Util Data.SeqQueueData.IndexedPriorityQueueData.Polynomial.Base%Data.Polynomial.Factorization.Integer&Data.Polynomial.Factorization.RationalAlgorithm.FourierMotzkinAlgorithm.Cooper OptDir-0.0.3 Data.OptDirOptMinOptMaxOptDirversion DenseBlock DenseMatrixBlockMatrixProblem blockStructcostsmatricesmDimnBlock blockElem denseBlock denseMatrix diagBlockparseDataString parseDataFileparseSparseDataStringparseSparseDataFilerender renderSparseModel MonomialOrder UMonomialMonomial mindicesMapUTermTermX UPolynomial PrettyVar pPrintVar PrettyCoeff pPrintCoeffisNegativeCoeff PrintOptions pOptPrintVarpOptPrintCoeffpOptIsNegativeCoeffpOptMonomialOrderSQFreesqfreeFactorfactorContPPcontpp PolynomialcoeffMapDegreedegVarsvarsVarvarconstant fromTerms fromCoeffMapfromTermtermsltlclmcoeff lookupCoeff isPrimitivederivintegralevalsubstisRootOf isSquareFreemapCoefftoMonictoUPolynomialOfdivModMPreducedefaultPrintOptions prettyPrintdivmoddivModdividesgcdlcmexgcdpdivModpdivpmodgcd'tdegtmulttdividestdivtderiv tintegralmone mfromIndicesmfromIndicesMapmindicesmmultmpowmdividesmdivmderiv mintegralmlcmmgcdmcoprimelexrevlexgrlexgrevlexhensel sqfreeChar0LBoollTruelFalselUndeflnotliftBool unliftBoolLit WeightedTermSumSoftConstraint SoftFormulaOpEqGe ConstraintFormulaparseOPBString parseOPBFileparseWBOString parseWBOFileshowOPBshowWBO pbNumVars wboNumVarsconvertClauseLitMapLitSetVarMapVarSetvalidVarlitUndefvalidLitliterallitNotlitVar litPolarityevalLitnormalizeClausenormalizeAtLeastnormalizePBSumnormalizePBAtLeastnormalizePBExactly cutResolvecardinalityReductionnegatePBAtLeastpbEval pbLowerBound pbUpperBound TheorySolver thAssertLitthCheck thExplainthPushBacktrackPointthPopBacktrackPoint emptyTheory satPrintModelmaxsatPrintModel pbPrintModel musPrintSolGClause GroupIndexGCNFnumVars numClauseslastGroupIndexclauses parseString parseFileWeightWeightedClauseWCNFtopCostparseWCNFString parseWCNFFileObjType ObjMaxZero ObjMaxOneObjNonesetObjRestartStrategy LubyRestarts ArminRestartsMiniSATRestartsLearningStrategyLearningHybridLearningClauseBudgetExceededSolvervarDecayActivityvarBumpActivitynVarsnAssignsnClausesnLearnt newSolvernewVarnewVarsnewVars_ addClause addAtLeast addAtMost addExactly addPBAtLeast addPBAtMost addPBExactlyaddPBAtLeastSoftaddPBAtMostSoftaddPBExactlySoftsolve solveWithmodelfailedAssumptionssetRestartStrategydefaultRestartStrategysetRestartFirstdefaultRestartFirst setRestartIncdefaultRestartIncsetLearningStrategydefaultLearningStrategysetLearntSizeFirstdefaultLearntSizeFirstsetLearntSizeIncdefaultLearntSizeIncsetCCMin defaultCCMinsetVarPolarity setCheckModel setRandomFreqdefaultRandomFreq setRandomSeed setConfBudget setLoggerEncoder encSolverEquivImplyNotOrAnd newEncodersetUsePB addFormula encodeConj encodeDisjOptions optLogger optUpdateBest optLitPrinterdefaultOptionsfindMUSAssumptions optCallbackMCSMUSenumMCSAssumptionsallMCSAssumptionsallMUSAssumptionshittingSetDual optUpdateLBsolveWBOoptObjFunVarsHeuristicsoptSearchStrategyoptTrialLimitConfSearchStrategyMSU4 UnsatBasedAdaptiveSearch BinarySearch LinearSearchminimize tweakParams mUniverse mRelations mFunctionsEntity GenFormulaExistsForallAtomFTPAppTmVarTmAppGenLitNegPosPSymFSym toSkolemNF showEntity showModel findModelStrategy SugarStrategyNormalStrategy optStrategy spolynomialbasisbasis' reduceGBasis berlekampbasisOfBerlekampSubalgebraFlatTermFTAppFTConstmerge areCongruentSignZeronegatemultrecippowsignOfsymbol SturmChain sturmChainnumRoots numRoots'separate separate'halvehalve'narrownarrow'approxapprox' normalizePolyrootAddrootMul rootShift rootScale rootRecip rootSimpPoly rootNthRootlift2findPoly interpolateNthRootgraeffesMethodAReal realRoots realRootsExapproxIntervalnthRootminimalPolynomial isRationalisAlgebraicIntegerheight rootIndex simpARealPoly goldenRatio combineMaybe isIntegerfracPart showRationalshowRationalAsFiniteDecimal revSequencerevMapMrevForMDeltadeltafromRealrealPart deltaPartfloor'ceiling' isInteger'SOSSOSTypeS2S1RelOpEqlLe BoundExprPosInfFiniteNegInfLabelBoundsVarInfovarNamevarType varBoundsVarTypeSemiContinuousVariableIntegerVariableContinuousVariable constrType constrLabelconstrIndicator constrBodyConstraintTypeUserDefinedCutLazyConstraintNormalConstraintObjectiveFunctionExprLP variablesdirobjectiveFunction constraintsvarInfosos defaultBounds defaultLB defaultUB getVarInfo getVarType getBoundsintegerVariablessemiContinuousVariablesLanguageYICESSMTLIB2 optLanguage optCheckSAToptProduceModel optOptimize convertWBO VariablesBoolean.=>..<=>. ComplementnotBtruefalse.&&..||.andBorBRelIsRelrelNEqGtLtflipOpnegOpshowOpevalOp.<..<=..>..>=..==../=. BoundsEnvunitVarasConstmapCoeffWithVarevalExpr evalLinearlift1 applySubst applySubst1extract extractMaybeshowExprshowAtomevalAtomsolveForcomputeInterval inferBounds PivotResultRowColIndexRowIndexTableauobjRowpivot lookupRowsetRow setObjFuncurrentObjValuesimplex dualSimplexphaseItoCSVtoStandardFormtoStandardForm'solve' emptySolvergensym getTableau putTableauaddArtificialVariablegetArtificialVariablesclearArtificialVariablesdefinegetDefs addConstraintaddConstraint2 expandDefs expandDefs'tableaugetModelnormalizeConstraintcollectNonnegVars OptResultOptimum UnboundedOptUnsatmaximizeoptimizeRawModelobjLimitObjLimitUnsat PivotStrategyPivotStrategyLargestCoefficientPivotStrategyBlandRule SolverValuetoValue showValue GenericSolver cloneSolversetPivotStrategy assertAtom assertAtomEx assertLower assertUppergetObj setOptDir getOptDirisBasicVariableisNonBasicVariable isFeasible isOptimalcheckrawModel getObjValuegetLBgetUBgetValuegetRowgetColgetCoeff clearLoggerdumpsetShowRational setNThread linearizeaddConstraintSoftDNFunDNFCellIntervalPointRootOfproject findSampleevalCell evalPointcheckRealByCADcheckRealBySimplexNonnegRatExprZtoRatfromRat fromLAAtomtoLAAtomproject'projectN projectN'pushNot SatResultSatUnknown:/::*::+:Const fromFOLAtom toFOLFormula fromFOLExpr toFOLExpr solveFormulaeliminateQuantifierseliminateQuantifiers' QFFormulaOr'And'F'T' Divisible.|. evalQFFormula projectCases projectCasesNsolveQFFormula solveQFLA optCheckRealcheckRealNoCheck checkRealByFMpackageVersionscatchIObindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileName pDataFilepSparseDataFilepComment pBlockStructpCostspDenseMatricespSparseMatricesnat_linenatintrealsign renderImpl renderVecshowRatconcatSsepBySreadUnsignedIntegerbase Text.Readread integer-gmpGHC.Integer.TypeIntegerreadIntreadUnsignedIntSeqQueueclear$fQueueSizeSeqQueueIO$fDequeueSeqQueueIOa$fEnqueueSeqQueueIOa$fNewFifoSeqQueueIO queue-0.1.2Data.Queue.ClassesnewFifoNewFifo enqueueBatchenqueueEnqueue dequeueBatchdequeueDequeue queueSize QueueSize PriorityQueuenewPriorityQueueghc-prim GHC.ClassesOrdnewPriorityQueueBygetElemsclone getHeapArrayheaptableValueIndexmemberupdateupdownleftrightparent cloneArraycopyTo$fQueueSizePriorityQueueIO$fDequeuePriorityQueueIOInt$fEnqueuePriorityQueueIOInt normalize asConstantscalezeroplusnegisZerocontIppIprettyPrintTermaddPrecmulPrecratPrecexpPrecappPrecucmpmfromIndicesMap'$fVarsMonomialv$fVarMonomialv$fDegreeMonomial$fNFDataMonomial$fShowMonomial $fNFDataX $fPrettyVarX$fPrettyVarInt$fPrettyCoeffPolynomial$fPrettyCoeffPrimeField$fPrettyCoeffRatio$fPrettyCoeffInteger$fPrettyPolynomial $fContPPRatio$fContPPInteger$fDegreePolynomial$fVarsPolynomialv$fVarPolynomialv$fNFDataPolynomial$fShowPolynomial$fVectorSpacePolynomial$fAdditiveGroupPolynomial$fNumPolynomial test_hensel prop_5_10test_prop_5_10 prop_5_11test_prop_5_11f$fSQFreePolynomial$fSQFreePolynomial0 $fShowLBoolformulasequence_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_constraintsoftconstraintshowSumshowWeightedTermshowLitshowConstraintshowSoftConstraint GHC.TypesTrueFalse Data.MaybeNothingsplit isComment parseLine parseCNFLineseqList parseWCNFLinegenObjbasicPropagatewatch toConstraintSomeConstraint basicReasonOf svVarDecaysvVarInc svClaDecaysvClaIncsvRestartFirst svRestartIncsvLearntSizeFirstsvLearntSizeIncsvCCMin ldWatcheswatchessimplify backtrackTo propagatereasonOf PBAtLeastDatapbTermspbDegreepbSlack pbActivity pbReasons AtLeastData atLeastLits atLeastNumatLeastActivity ClauseDataclaLits claActivityConstrPBAtLeast ConstrAtLeast ConstrClauseattachwatchedLiterals toPBAtLeast isSatisfiedconstrIsProtectedconstrActivityconstrBumpActivityconstrRescaleActivity SearchResultSRBudgetExceeded SRRestart SRFinished VarActivitysvOk svVarQueuesvTrail svVarCounter svVarData svClauseDB svLearntDB svAssumptionssvLevel svBCPQueuesvModel svNDecisionsvNRandomDecision svNConflict svNRestart svNAssignssvNFixed svNLearntGCsvNRemovedConstrsvRestartStrategy svLearntLimsvLearntLimAdjCntsvLearntLimSeqsvLearningStrategysvLogger svStartWC svLastStatWC svCheckModel svRandomFreq svRandomGensvFailedAssumptions svConfBudgetLitDataVarData vdAssignment vdPolarity vdPosLitData vdNegLitData vdActivity AssignmentaValueaLevelaReason aBacktrackCBsLevel levelRoot newVarData newLitDatavarDatalitDatavarValuelitValuevarLevellitLevel varReasonmarkBad bcpEnqueue bcpDequeueassignByassignassign_unassignaddBacktrackCBaddToDB addToLearntDBreduceDB varActivityvarRescaleAllActivitylearntConstraintsltVarsolve_search pickBranchLitdecidededuceanalyzeConflict analyzeFinalanalyzeConflictHybridpbBacktrackLevelminimizeConflictClauseminimizeConflictClauseLocalminimizeConflictClauseRecursivepopTrailconstructModelconstrDecayActivityconstrRescaleAllActivity resetStatprintStatHeader printStat showTimeDiffdetachisLocked newClauseDatainstantiateClausenewAtLeastDatainstantiateAtLeastnewPBAtLeastData instantiatePB pbPropagate pbOverSAT mkRestartSeqminiSatRestartSeqarminRestartSeqlubyRestartSeqlubyallManyMshift debugModecheckSatisfied sanityCheckdumpVarActivitydumpClaActivityloglogIO$fConstraintPBAtLeastData$fConstraintAtLeastData$fConstraintClauseData$fEqClauseData$fConstraintSomeConstraint$fExceptionBudgetExceededencUsePB encConjTableencodeToClause encodeToLit addIsConjOf addIsDisjOfpropagateChoicemaintainNoSupersetsSGenAtomSGenTermSubst GroundClause GroundLit GroundAtom GroundTermMSClauseSLitSAtomSTermSEqSPAppSTmVarSTmApptoNNFtest_toSkolemNFflatten test_flattenshowEntityTuple enumSubstsimplifyGroundClause collectFSym collectPSymtesttest2$fVarsSGenAtom$fVarsSGenTerm$fVarsGenFormula $fVarsAtom $fVarsTerm $fVarsGenLit$fVars[]ItemiFstiSndiCmpiLCMitempairs$fEqItem $fOrdItemsqfree' polyPthRoot$fFactorPolynomialnorm2sq zassenhausliftdiv'combtest_zassenhaustest_zassenhaus2test_foo svPendingsvRepresentativeTable svClassList svUseList svLookupTable PendingEqnEqn1lookup setLookup addToPendinggetRepresentative$fBoundedLatticeSet$fBoundedMeetSemiLatticeSet $fLatticeSet$fMeetSemiLatticeSet$fDivisionSign $fUnitalSign$fCommutativeSign$fMultiplicativeSign$fEnumerableSign$fHashableSign $fNFDataSignboundscountSignChanges countChanges boundIntervalf'properFraction'GHC.RealproperFraction truncate'truncateround'roundceilingfloor $fDegreeARealRealRoot realRoots'realRoot realRoot' scaleAReal shiftARealnthRootsinterval$fPrettyCoeffAReal $fPrettyAReal$fRealFracAReal $fRealAReal$fFractionalAReal $fNumAReal $fOrdAReal $fEqAReal$fVectorSpaceDelta$fAdditiveGroupDeltaBounds2defaultVarInfointersectBoundschar'string'septokidentlabelreservedlpfileproblemendconstraintSection subjectTorelOplazyConstraintsSectionuserCutsSection boundsSectionbound boundExprinfgeneralSection binarySection semiSection sosSectionexprqexprqtermqfactornumberrender' renderExpr showCoeff showConstTerm renderLabelrenderOprenderConstraintrenderBoundExprrenderVariableListfill$fVariablesConstraint$fVariablesTerm $fVariablesLP $fVariables[]EnvunlinesSlistand'or'not'realNumtoRealassert conditionsnonAdjacentPairsencodetestFiletestdataconvExprconvVarcollectVariablesrelaxGErelaxLEcollectVariablesWBOmtrans BoundTypeSCUILIBVPLMIFRFXUPLOColumnspace'spaces'spaces1' commentlinenewline'stringLnmpsfile nameSectionobjSenseSectionobjNameSection rowsSectionlazyConsSectionrowsBody colsSection rowAndVal rhsSection rangesSection boundTypequadObjSectionqMatrixSectionqcMatrixSectionindicatorsSectionfactor'factor2isUPolyZtoZxvalues interleavefactors primeFactorslattices-1.2.1.1Algebra.Latticetopbottommeetjoinmeetsjoins $fFunctorRel$fVariablesRel $fIsReleRel$fComplementRel normalizeExpr showExprWith$fVectorSpaceExpr$fAdditiveGroupExpr $fNFDataExpr $fReadExpr $fShowExpr$fVariablesExprtightenToIntegerCstrict PivotSuccess PivotFinishedPivotUnbounded normalizeRow copyObjRow validTableau isImproving primalPivot dualPivotremoveArtificialVariableskuhn_7_3 test_kuhn_7_3 example_5_7test_example_5_7mkModel costOrdering elimOrdering 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_7testAll increaseNB decreaseNB svTableausvLBsvUBsvVCntsvOptDirsvDefDBsvPivotStrategysvNPivotobjVar simplifyAtomselectViolatingBasicVariableselectEnteringVariable canIncrease canDecrease canIncrease1 canDecrease1 dualRTestprunepivotAndUpdatefindMtestLBtestUBbasicVariables recordTime showDeltatest4test5test6dumpSizecheckFeasibilitycheckNBFeasibilitycheckOptimality$fSolverValueDelta$fSolverValueRatioNodendLPndDepthndValueMIP mipRootLPmipIVsmipBest mipNThread mipLoggermipShowRationalbranchAndBoundviolatedderiveGomoryCutcanDeriveGomoryCut $fNumExpr $fBooleanDNF$fBoundedLatticeDNF$fBoundedMeetSemiLatticeDNF$fBoundedJoinSemiLatticeDNF $fLatticeDNF$fMeetSemiLatticeDNF$fJoinSemiLatticeDNF$fComplementDNFCoeffSignConfshowCell showPoint emptySignConf showSignConfmr test_mr_1 test_mr_2runMassume buildSignConfcollectPolynomialsgetHighestNonzeroTermzmodrefineSignConfshowDNFdumpProjection 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_printBoundsRnormalizeExprRevalRatconstraintsToDNFatomR'leRltRgeRgtR collectBoundsboundConditions evalBounds$fComplementLit$fVariablesLit$fBooleanFormula$fBoundedLatticeFormula$fBoundedMeetSemiLatticeFormula$fBoundedJoinSemiLatticeFormula$fLatticeFormula$fMeetSemiLatticeFormula$fJoinSemiLatticeFormula$fComplementFormula$fVariablesFormula$fIsRelExprFormula $fFunctorExpr$fFractionalExprWitnessWCase2WCase1leZltZgeZgtZeqZsubst1 simplify1 simplifyLit evalWitness projectCases' testHagiyatest3$fIsRelExprQFFormula$fVariablesQFFormula$fBooleanQFFormula$fBoundedLatticeQFFormula!$fBoundedMeetSemiLatticeQFFormula!$fBoundedJoinSemiLatticeQFFormula$fLatticeQFFormula$fMeetSemiLatticeQFFormula$fJoinSemiLatticeQFFormula$fComplementQFFormula IntervalZBoundsZcollectBoundsZisExactchooseVariable evalBoundsZelimEqapplySubst1LitunivZ intersectZpickupZpickupErrErrUnsat ErrUnboundedndSolver ndTableau ndLowerBoundtableau'conv mkInitialNodeisStrictlyBettertraverseexample1test1test1'example2