:&k      !"#$%&'()*+,-./0123456789:;<=>?@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 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{|}~          ! " # $ % & ' ( ) * + , - . / 0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h"i"j"k"l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~###################$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&''''''''''''((((((((((()))))))))))))))))))))))))*+,--...../00000000000000000000000 0 0 0 1 1112222222222222222 2!2"2#2$2%2&2'2(2)2*2+2,2-2.2/202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F3G3H4I5J6K6L6M6N6O6P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c7d7e7f7g7h7i7j8k8l8m8n9o9p9q9r9s9t9u9v9w:x:y:z:{:|:}:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : : ; ; ;;;;;;;;;;;;;;;;;;; ;!;";#;$;%;&;';(;);*;+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T<U<V<W<X<Y<Z<[=\>]?^@_@`@a@b@c@d@eAfBgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzC{C|C}C~CCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEFFFFFFFFFFGGGGGGGGGGHHHHHHHHHHHIJKLLLLMMMNNNOOPPPPPPPPPPPPPQQQRRRRRRRRRRRRSSSSSSSSSSSSS S S S S SSTTTTTTTTTTTTTTTTU U!U"U#V$V%V&V'V(V)V*V+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;W<W=W>W?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzX{X|X}X~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[\\\]^^^^^ ^ ^ ^ ^ ^^^^_______________ _!_"_#_$_%_&_'_(_)_*`+`,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCbDbEbFcGcHcIcJcKcLcMcNcOcPcQdReSeTeUeVeWeXeYeZe[e\e]e^e_e`eaebecedeeefegeheiejfkflfmfnfofpfqfrfsftfugvgwgxgygzg{g|g}h~hiijjjjqkNoneT(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe (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)*)*)*)*(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe+Combining two Maybe values using given function.,is the number integral? , isInteger x = fromInteger (round x) == x -fractional part ) fracPart x = x - fromInteger (floor x) +,-./012+,-./012+,-./012+,-./012(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)Safe4 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.34343434(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (CPP)Safe5 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 stderr555(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses)Safe9;<=6789:;   67 6  76789:;(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (FlexibleContexts)None:<=>?@<=>?@<=>?@<=>?@ (c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (BangPatterns, FlexibleContexts, ScopedTypeVariables)None:TG%Get the internal representation array[%Get the internal representation array\%Get the internal representation array]!Pre-allocate internal buffer for n elements.BCDEFGHIJKLMNOPQRSTUVWXYZ[\]BCDEFGHIJKLMNOPQRSTUVWXYZ[\]EDCBFZGHIJKNOLMPQRTSUVWXY[\]BCDEFGHIJKLMNOPQRSTUVWXYZ[\] (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional[non-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, TypeSynonymInstances)None9;<=B _6Priority queue implemented as array-based binary heap.b7Build a priority queue with default ordering ('(<)' of  class)c$Build a priority queue with a given  less than operator.$Build a priority queue with a given  less than operator.dCReturn a list of all the elements of a priority queue. (not sorted)e*Remove all elements from a priority queue.f"Create a copy of a priority queue.i:Get the internal representation of a given priority queue.j:Get the internal representation of a given priority queue.k!Pre-allocate internal buffer for n elements.l!Pre-allocate internal buffer for [0..n-1] values._`abcdefghijklmnop  _`abcdefghijkl_`abcdef  ghijkl_`abcdefghijklmnop (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalZnon-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, ScopedTypeVariables)None9;<=T q6Priority queue implemented as array-based binary heap.s7Build a priority queue with default ordering ('(<)' of  class)t$Build a priority queue with a given  less than operator.uCReturn a list of all the elements of a priority queue. (not sorted)v*Remove all elements from a priority queue.w"Create a copy of a priority queue.x:Get the internal representation of a given priority queue.y:Get the internal representation of a given priority queue.z!Pre-allocate internal buffer for n elements.qrstuvwxyz{|}~  qrstuvwxyzqrstuvw  xyzqrstuvwxyz{|}~ (c) Masahiro Sakai 2012, 2015 BSD-stylemasahiro.sakai@gmail.com provisionalCnon-portable (BangPatterns, ScopedTypeVariables, FlexibleInstances)None9;T An equation a = b represented as eithera = b orf(a1,a2) = a, f(b1,b2) = b where a1 = b1 and a2 = b2 has already been derived.Eqn1 cid a b c$ represents an equation "f(a,b) = c" Eqn0 cid a b represents an equation "a = b"\))> (c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.comunstablenon-portable (CPP)None$$(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeA Model# is a map from variables to values.collecting free variablesMap from variablesSet of variables2Variables are represented as non-negative integersl(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies, BangPatterns, DeriveDataTypeable, CPP)None09;<=?DRT0Monic monomials Variable "x".Univariate polynomials over commutative ring r'Options for pretty printing polynomials%The default value can be obtained by .(Square-free factorization of polynomialsfactor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..]."Prime factorization of polynomialsfactor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..].Content of a polynomial Primitive part of a polynomial"Polynomial over commutative ring r"total degree of a given polynomial&construct a polynomial from a constant+construct a polynomial from a list of terms*construct a polynomial from a singlet term list of terms3leading term with respect to a given monomial order:leading coefficient with respect to a given monomial order7leading monomial with respect to a given monomial orderPLook up a coefficient for a given monomial. If no such term exists, it returns 0.PLook up a coefficient for a given monomial. If no such term exists, it returns Nothing.Ya polynomial is called primitive if the greatest common divisor of its coefficients is 1. Formal derivative of polynomialsFormal integral of polynomials EvaluationSubstitution or bind"Transform polynomial coefficients.XTransform a polynomial into a monic polynomial with respect to the given monomial order. Convert  K[x,x1,x2, &] into  K[x1,x2, &][x]. Multivariate division algorithmdivModMP cmp f [g1,g2,..] returns a pair  ([q1,q2, &],r) such thatf = g1*q1 + g2*q2 + .. + r and g1, g2, .. do not divide r. Multivariate division algorithm )reduce cmp f gs = snd (divModMP cmp f gs) 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 order0Reverse lexicographic order.Note that revlex is NOT a monomial order.1Graded lexicographic order2"Graded reverse lexicographic order      !"#$%&'()*+,-./012     ^      !"#$%&'()*+,-./012z      !"#$%&'()*+,-./012     77(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneT345345345345m(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone33(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalDnon-portable (BangPatterns, TypeSynonymInstances, FlexibleInstances)None9;6USquare-free decomposition of univariate polynomials over a field of characteristic 0.6 78666 78(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT;$sugar strategy (not implemented yet)<&Options for Grbner Basis computation.&The default option can be obtained by .!"#$%&9:;<=>?@AB'(CDE 9:;<=>?@AB <=>9:;@A?B !"#$%&9:;<=>?@AB'(CDE(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalYnon-portable (ScopedTypeVariables, BangPatterns, TypeSynonymInstances, FlexibleInstances)None9;TMHSquare-free decomposition of univariate polynomials over a finite field.N1Berlekamp algorithm for polynomial factorization.8Input polynomial is assumed to be monic and square-free.LM)*NOPQLMNOLMNOLM)*NOPQ(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (BangPatterns, ScopedTypeVariables)NoneT+f|^2RS,-+./RSRSRS,-+./(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional6non-portable (TypeSynonymInstances, FlexibleInstances)None9;TTNone9;UU(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone^      !"#$%&'()*+,-./012`     !"#$%&'()*+,-./012 NoneVVVV(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None W012345678WW W012345678(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneZ&SOS (special ordered sets) constraints_/types of SOS (special ordered sets) constraints`Type 1 SOS constraintaType 2 SOS constraintbrelational operatorsf4type for representing lower/upper bound of variablesgvariablehlabeli4type for representing lower/upper bound of variableso constraintwobjective function|terms~ expressionsProblemdefault boundsdefault lower bound (0)default upper bound (+") convert a string into a variable convert a variable into a string looking up bounds for a variable looking up bounds for a variableQXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9JXYZ[\]^_`abdcefghijklmnopqrstuvwxyz{|}~J~|}wxyz{opqrstuvihgjklmnfbcde_`aZ[\]^XY.XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9444(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.LP file parserRender a problem into a string.::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)NoneDRwParse a string containing MPS file data. The source name is only | used in error messages and may be the empty string.&Parse a file containing MPS file data.MPS file parser;pqrstuvwxyz{|}~0pq rstuvwxyz{|}~(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone.Parse .lp or .mps file based on file extension%Parse a file containing LP file data.&Parse a file containing MPS file data.'Parse a string containing LP file data.(Parse a string containing MPS file data. TXYZ[\]^_`abdcefghijklmnopqrstuvwxyz{|}~  (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe&Lifted Bool type. It has three values , , .lifted true valuelifted false valueundefined truth value F lnot lTrue == lFalse lnot lFalse == lTrue lnot lUndef == lUndef  4 liftBool True == lTrue liftBool False == lFalse  a unliftBool lTrue == Just True unliftBool lFalse == Just False unliftBool lUndef == Nothing (c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)SafeDR  Delta r k: represents r + k for symbolic infinitesimal parameter .#symbolic infinitesimal parameter .Conversion from a base r value to Delta r.Extracts the real part..Extracts the  part.. version of .  x/ returns the greatest integer not greater than x version of .  x) returns the least integer not less than xIs this a integer?NThis is unsafe instance in the sense that only a proper real can be a divisor.XThis instance assumes the symbolic infinitesimal parameter  is a nilpotent with  = 0.  (c) Masahiro Sakai 2012-2015 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)Safe<=3types that can be combined with boolean operations.types that can be negated.          1132(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe<=Disjunctive normal formlist of conjunction of literals (c) Masahiro Sakai 2011-2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe<=formulas of first order logic'+convert a formula into negation normal form !"#$%&'()*+,"! #$%&'  !"#$%&'  !"#$%&'()*+,!(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalOnon-portable (FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies)Safe9;<=?0Atomic formula2.type class for constructing relational formula8.type class for constructing relational formula;relational operatorsBflipping relational operatorrel (flipOp op) a b is equivalent to  rel op b aCnegating relational operatorrel (negOp op) a b is equivalent to notB (rel op a b)Doperator symbolE0evaluate an operator into a comparision function0123456789:;<=>?@ABCDEFGHIJK0124635789:;>=@<?ABCDEF;<=>?@ABCDE01F89:2345670123456789:;<=>?@ABCDEFGHIJK3444546494:4"(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses)Safe9;<=R"results of satisfiability checkingVAtomic formulaWArithmetic expressions]single variable expression^ evaluate an W with respect to a RSTUVWXYZ[\]^_`abcde@"! #$%&'0124635789:;>=@<?ABCDEFRSTUVWYZ[X\]^_WXYZ[\]^V_RSTU RSTUVWXYZ[\]^_`abcde#(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)SafeDRm$Atomic Formula of Linear ArithmeticsnnLinear combination of variables and constants. Non-negative keys are used for variables's coefficients. key s is used for constants.o(a mapping from variables to coefficientsp Create a Expr/ from a mapping from variables to coefficients.q"terms contained in the expression.r Create a Expr from a list of terms.s6Special variable that should always be evaluated to 1.uvariablevconstantwmap coefficients.xmap coefficients.y(evaluate the expression under the model.z(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.applySubst1 x e phi == phi[e/x]1Solve linear (in)equation for the given variable. solveFor a v returns  Just (op, e) such that  Atom v op e is equivalent to a.compute bounds for a Expr with respect to  BoundsEnv.'lmnopqrstuvwxyz{|}~50124635789:;>=@<?ABCDEFlmnopqrstuvwxyz{|}~nouvqropst~wxyz{|}ml%lmnopqrstuvwxyz{|}~$Safe%(c) Masahiro Sakai 2014-2015 BSD-stylemasahiro.sakai@gmail.com provisional8non-portable (MultiParamTypeClasses, DeriveDataTypeable)None0<=-Boolean expression over a given type of atoms  &None'(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone Sturm's chain (Sturm's sequence) Sturm's sequence of a polynomial%The number of distinct real roots of p in a given interval%The number of distinct real roots of p+ in a given interval. This function takes p's sturm chain instead of p itself.KClosed interval that contains all real roots of a given polynomial. h90nPuL =http://aozoragakuen.sakura.ne.jp/taiwa/taiwaNch02/node26.htmlYDisjoint intervals each of which contains exactly one real roots of the given polynoimal p,. The intervals can be further narrowed by  or .YDisjoint intervals each of which contains exactly one real roots of the given polynoimal p,. The intervals can be further narrowed by  or . This function takes p's sturm chain instead of p itself.  ((c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (Rank2Types)NoneOT    )(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (Rank2Types)NoneOTAlgebraic real numbers.0Real roots of the polynomial in ascending order.0Real roots of the polynomial in ascending order.-Returns approximate rational value such that %abs (a - approx a epsilon) <= epsilon.'Returns approximate interval such that +width (approxInterval a epsilon) <= epsilon.Same as .Same as .Same as .Same as .Same as .The n th root of a9Same algebraic real, but represented using finer grained .5The polynomial of which the algebraic number is root.@Isolating interval that separate the number from other roots of  of it.+Whether the algebraic number is a rational.kWhether the algebraic number is a root of a polynomial with integer coefficients with leading coefficient 1 (a monic polynomial).Height of the algebraic number.The height of an algebraic number is the greatest absolute value of the coefficients of the irreducible and primitive polynomial with integral rational coefficients.root index, satisfying  ( a) !! rootIndex a == a  Golden ratio Degree of the algebraic number.If the algebraic number's  has degree n2, then the algebraic number is said to be degree n.&aepsilonaepsilon%n(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone*(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone+(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone,(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone-(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone.(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com experimentalportableSafe/(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNone0(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneTranslation options.&The default option can be obtained by .(1(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (ScopedTypeVariables, BangPatterns, FlexibleContexts)None:T GMaximize _{i=1}^n wi xi subject to _{i=1}^n wi xi "d c and xi " {0,1}.JNote: 0 (resp. 1) is identified with False (resp. True) in the assignment.EMinimize _{i=1}^n wi xi subject to _{i=1}^n wi x"e l and xi " {0,1}.JNote: 0 (resp. 1) is identified with False (resp. True) in the assignment.(Solve _{i=1}^n wi x = c and xi " {0,1}.zNote that this is different from usual definition of the subset sum problem, as this definition allows all xi to be zero.JNote: 0 (resp. 1) is identified with False (resp. True) in the assignment.   weights [w1, w2 .. wn] capacity c(the objective value _{i=1}^n wi xi, andthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).weights [w1, w2 .. wn] l(the objective value _{i=1}^n wi xi, andthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).weights [w1, w2 .. wn] lthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).       2None9;T XOR clause.'([l1,l2..ln], b)' means l1 " l2 " " " ln = b. Note that:&True can be represented as ([], False)&False can be represented as ([], True)Disjunction of .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.2 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.3&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn >= b.4&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn = b.@Normalize XOR clause6 !"#$variablepolarity%&'()*+,-./0123456789:;<=>?@ABCDE3 !"#$%&'()*+,-./0123456789:;<=>?@AB3 !"#$%&'()*+,-./0123456789:;<=>?@AB5 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE3(c) Masahiro Sakai 2011-2015 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneFGFGFGFG4(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneHHHH5(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneIIII6(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneJ!Maximal Satisfiable Subset (MSS).~A subset S " C is an MSS if S is satisfiable and "C_i " U\S, S"*{C_i} is unsatisfiable [CAMUS]. A MSS is the complement of an L.KSatisfiable Subset (SS).IA subset S " C is a SS if S is satisfiable. A SS is the complement of a M.L/Minimal Correction Subset of constraints (MCS).A subset M " C is an MCS if C\M is satisfiable and "C_i " M, C\(M\{C_i}) is unsatisfiable [CAMUS]. A MCS is the complement of an J and also known as a CoMSS.M&Correction Subset of constraints (CS).KA subset M " C is a CS if C\M is satisfiable. A CS is the complement of a K.N2Minimal Unsatisfiable Subset of constraints (MUS).]A subset U " C is an MUS if U is unsatisfiable and "C_i " U, U\{C_i} is satisfiable [CAMUS]. O)Unsatisfiable Subset of constraints (US)./A subset U " C is an US if U is unsatisfiable. JKLMNOJKLMNOONMLKJJKLMNO7None'PQ    RSTUVWXYZ[\]^_`abcdefghiPQRVYUSTWXZ[\]^_`abcdefgRSTUVWXYZ[\]^_`aQbcdefPgPQ     R STUVWXYZ[\]^_`abcdefghi8(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonejPrint a . in a way specified for SAT Competition. See  ,http://www.satcompetition.org/2011/rules.pdf for details.kPrint a 1 in a way specified for Max-SAT Evaluation. See  &http://maxsat.ia.udl.cat/requirements/ for details.lPrint a 9 in a way specified for Pseudo-Boolean Competition. See  .http://www.cril.univ-artois.fr/PB12/format.pdf for details.jklm jklmjklmjklm 9None nopqrstuv nopqrstuv nopqrstuvnopqrstuv:(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalVnon-portable (BangPatterns, ScopedTypeVariables, CPP, DeriveDataTypeable, RecursiveDo)None0BJTLwRestart strategy.%The default value can be obtained by .Ainvoked with the watched literal when the literal is falsified. watch 0g  toConstraint+ 0T|0sQ0W0f heap allocation 0Lvzu0Y00n0 0Q00_00k0QC0n  0n!0W0f0J0O0deduce a clause C"(l from the constraint and return C. C and l should be false and true respectively under the current assignment.{1Pseudo boolean constraint handler implimentation.%The default value can be obtained by .~Learning strategy.%The default value can be obtained by ._The initial restart limit. (default 100) Zero and negative values are used to disable restart.cThe factor with which the restart limit is multiplied in each restart. (default 1.5) This must be >1.nThe initial limit for learnt constraints. Negative value means computing default value from problem instance.jThe limit for learnt constraints is multiplied with this factor periodically. (default 1.1) This must be >1. HControls conflict constraint minimization (0=none, 1=local, 2=recursive)QThe frequency with which the decision heuristic tries to choose a random variable6Split PB-constraints into a PB part and a clause part.Example from minisat+ paper:-4 x1 + 4 x2 + 4 x3 + 4 x4 + 2y1 + y2 + y3 "e 4would be split into(x1 + x2 + x3 + x4 + z "e 1 (clause part)"2 y1 + y2 + y3 + 4 z "e 4 (PB part)Lwhere z is a newly introduced variable, not present in any other constraint. Reference:^N . Een and N. Srensson. Translating Pseudo-Boolean Constraints into SAT. JSAT 2:1 26, 2006.AInverse of the variable activity decay factor. (default 1 / 0.95)<Inverse of the constraint activity decay factor. (1 / 0.999)Solver instance"Amount to bump next variable with.$Amount to bump next constraint with..will be invoked when this literal is falsified2will be invoked once when the variable is assignedDit returns a set of literals that are fixed without any assumptions.FRegister the constraint to be notified when the literal becames false.ERegister the constraint to be notified when the variable is assigned.#number of variables of the problem.#number of variables of the problem.number of assigned number of assigned variables.number of constraints.number of constraints.number of learnt constrints.number of learnt constrints. Create a new  instance. Create a new % instance with a given configulation.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.See documentation of .!Add a pseudo boolean constraints c1*l1 + c2*l2 + & "d n.!Add a pseudo boolean constraints c1*l1 + c2*l2 + & = n.&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & "e n.&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & "d n.&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & = n.Add a parity constraint l1 " l2 " & " ln = rhsAdd a soft parity constraint sel ! l1 " l2 " & " ln = rhsSolve 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 3 returns True, it returns an satisfying assignment.After  returns False, it returns a set of assumptions that leads to contradiction. In particular, if it returns an empty set, the problem is unsatisiable without any assumptions.EXPERIMENTAL API: After  returns True or failed with J exception, it returns a set of literals that are implied by assumptions.NSimplify the constraint database according to the current top-level assigment._The initial restart limit. (default 100) Zero and negative values are used to disable restart.default value for  RestartFirst.TThe factor with which the restart limit is multiplied in each restart. (default 1.5) This must be >1.default value for  RestartInc.%The initial limit for learnt clauses.CNegative value means computing default value from problem instance.default value for LearntSizeFirst.WThe limit for learnt clauses is multiplied with this factor each restart. (default 1.1) This must be >1.default value for  LearntSizeInc.?Controls conflict clause minimization (0=none, 1=basic, 2=deep)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 selection6Split PB-constraints into a PB part and a clause part.Example from minisat+ paper:-4 x1 + 4 x2 + 4 x3 + 4 x4 + 2y1 + y2 + y3 "e 4would be split into(x1 + x2 + x3 + x4 + z "e 1 (clause part)"2 y1 + y2 + y3 + 4 z "e 4 (PB part)Lwhere z is a newly introduced variable, not present in any other constraint. Reference:^N . Een and N. Srensson. Translating Pseudo-Boolean Constraints into SAT. JSAT 2:1 26, 2006.See documentation of .See documentation of .?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.bwxyz !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST{|}~UVWXYZ[\]^_`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.list 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.Selector literal sellist of terms [(c1,l1),(c2,l2), &]nThe  argument.Selector literal sellist of terms [(c1,l1),(c2,l2), &]nThe  argument.Selector literal sellist of terms [(c1,l1),(c2,l2), &]nThe  argument. literals [l1, l2, &, ln]rhsThe  argument.Selector literal sel literals [l1, l2, &, ln]rhs Assumptions $%&'(,01:;<Bwxyz{|}~݀ $%&'(,01:;<Bwxyz~{|}wxyz !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST{|}~UVWXY Z[\]^_`abcdefghijklmnopqrstuvwxyz{ |}~;(c) Masahiro Sakai 2012, 2015 BSD-stylemasahiro.sakai@gmail.com provisionalbnon-portable (TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables, MultiParamTypeClasses)None9;<=T Element of model. Shallow atom Shallow term"Term%3Generalized literal type parameterized by atom type(Predicate Symbol)Function Symbol*Variable+.normalize a formula into a skolem normal form.TODO:Tseitin encoding, print entityU     !"#$%&'  ()* +   ,   -./012345 6789:;<=>?@A+    !"#$%&'()*+,-./012345+*)(%&'"#$ !+   -,./012345=      !"#$%&'  ()* +   ,   -./012345 6789:;<=>?@A<(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneT Options for Y function%The default value can be obtained by .YdFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from .TUVWXYZ JKLMNOTUVWXYTUVWXYTUVWXYZ=(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone[dFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from .[ JKLMNOTUVWX[TUVWX[[>(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^Options for BCD2 algorithm.%The default value can be obtained by . .The smallest integer greater-than or equal-to n- that can be obtained by summing a subset of wsG. Note that the definition is different from the one in Morgado et al. -The greatest integer lesser-than or equal-to n- that can be obtained by summing a subset of ws.     ^_`ab  !c "  ws n  ws nd^_`abc^_`abc     ^_`ab  !c "  dA(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonee #eee #B(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)Nonef $fff $C(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonehOptimization strategy%The default value can be obtained by .*g % & ' ( ) *hijklmnopqrstuvwxyz{|}~ + , - .ghnoplmijkqrstuvwxyz{|}~gqrshijklmnoptuvwxyz{|}~g % & ' ( ) *hijklmnopqrstuvwxyz{|}~ + , - .D(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone Encoder 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.  encodeConj encoder =  encoder  eReturn an literal which is equivalent to a given conjunction which occurs only in specified polarity.=Return an literal which is equivalent to a given disjunction.  encodeDisj encoder =  encoder  eReturn an literal which is equivalent to a given disjunction which occurs only in specified polarity.>Return an literal which is equivalent to a given if-then-else.  encodeITE encoder =  encoder  fReturn an literal which is equivalent to a given if-then-else which occurs only in specified polarity. / 0 1 2 3 / 0 1 2 3E(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & "e n.,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & "e n.,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & = n.1Add a soft non-linear pseudo boolean constraints sel ! c1*ls1 + c2*ls2 + & "e n.1Add a soft non-linear pseudo boolean constraints sel ! c1*ls1 + c2*ls2 + & "d n.1Add a soft non-linear pseudo boolean constraints lit ! c1*ls1 + c2*ls2 + & = n.Encode a non-linear  into a lienar .linearizePBSum enc s is equivalent to +linearizePBSumWithPolarity enc polarityBoth.Linearize a non-linear  into a lienar . The input 0 is assumed to occur only in specified polarity.If  p, the value of resulting  is  greater than or equal to the value of original .If  p, the value of resulting  is  lesser than or equal to the value of original .  [(c1,ls1),(c2,ls2), &]n [(c1,ls1),(c2,ls2), &]n [(c1,ls1),(c2,ls2), &]nSelector literal sel [(c1,ls1),(c2,ls2), &]nSelector literal sel [(c1,ls1),(c2,ls2), &]n indicator lit [(c1,ls1),(c2,ls2), &]n   FNoneDR  G(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone 4 5 6 7    4 5 6 7H(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneBWeigths must be greater than or equal to 1, and smaller than 2^63. 8 9 : ; < = > ?   8 9 : ; < = > ?I(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneJ(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneK(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneL(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneTM(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT @ A @ AN(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeTO(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeT B C D E B C D EP(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone Options for , , %The default value can be obtained by .`MCS candidates (see HYCAM paper for details). A MCS candidate must be a superset of a real MCS. JKLMNO Q(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneJKLMNO R(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable)Safe0Options for solving.&The default option can be obtained by .  F   FS(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable)Safe0Options for solving.&The default option can be obtained by . G    G  T(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe Hxhi n ** xhi n == nFind xs such that xs  (f,g) unless  f g. F tests whether F contains redundant implicants..Removes redundant implicants from a given DNF.occurFreq x F computes |{I"F | x"I}| / |F|areDualDNFs f g/ checks whether two monotone boolean functions f and g are mutually dual (i.e. f(x1, &,xn) = g(x1, &,xn)).?Note that this function does not care about redundancy of DNFs. Complexity:  O(n^o(log n)) where n =  I f +  I g. Synonym for .checkDualityA f g/ checks whether two monotone boolean functions f and g are mutually dual (i.e.L f(x1, &,xn) = g(x1, &,xn)) using Algorithm A  of [FredmanKhachiyan1996].,If they are indeed mutually dual it returns Nothing, otherwise it returns Just csi such that {xi ! (if xi"cs then True else False) | i"{1 &n}} is a solution of f(x1, &,xn) = g(x1, &,xn)).?Note that this function does not care about redundancy of DNFs. Complexity: O(n^O(log^2 n)) where n =  I f +  I g.checkDualityB f g/ checks whether two monotone boolean functions f and gc are mutually dual (i.e. f(x1, &,xn) = g(x1, &,xn)) using Algorithm B  of [FredmanKhachiyan1996].,If they are indeed mutually dual it returns Nothing, otherwise it returns Just csh such that {xi ! (if xi"cs then True else False) | i"{1 &n}} is a solution of f(x1, &,xn) = g(x1, &,xn)).?Note that this function does not care about redundancy of DNFs. Complexity:  O(n^o(log n)) where n =  J f +  J g. H K L M N O P a variable xa DNF Fa monotone boolean function f given in DNFa monotone boolean function g given in DNFa monotone boolean function f given in DNFa monotone boolean function g given in DNF Q Ra monotone boolean function f given in DNFa monotone boolean function f given in DNF S H K L M N O P Q R SU(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe(Find a new prime implicant or implicate.Let f6 be a monotone boolean function over set of variables SZ. Let "'_{I"C} "(_{i"I} x_i and "(_{I"D} "'_{i"I} x_i be the irredundant CNF representation f and DNF representation of f respectively.Given a subset C' " C and D' " D,  S f C' D' returns Just (Left I) where I " C \ C',Just (Right I) where J " D \ D', orNothing if C'=C and D'=D. BCompute the irredundant CNF representation and DNF representation.Let f6 be a monotone boolean function over set of variables S. This function returns C and D[ where "'_{I"C} "(_{i"I} x_i and "(_{I"D} "'_{i"I} x_i are the irredundant CNF representation f and DNF representation of f respectively.Set of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of f TSet of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of f U V Set of variables VA monotone boolean function f from {0,1}^|V| "E P(V) to BoolSubset C' of prime implicates C of fSubset D' of prime implicants D of f!" W X Y Z [ \ ] ^ _ !" !" T U V !" W X Y Z [ \ ] ^ _V(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone #Quantifier-free formula of LRA$$ M  returns whether  M "_LRA  or not.%% x  returns  (, lift) such that:"_LRA "y1, &, yn. ("x. ) !  where {y1, &, yn} = FV() \ {x}, andif  M "_LRA  then  lift M " .&& {x1, &,xm}  returns  (, lift) such that:%"_LRA "y1, &, yn. ("x1, &, xm. ) !  where {y1, &, yn} = FV() \ {x1, &,xm}, andif  M "_LRA  then lift M "_LRA .'' x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LRA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LRA _i then lift_i M "_LRA . `' x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LRA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LRA _i then lift_i M "_LRA . Note that ("x. (x)) ! "(_{t"S} (t) where  = {a_i x - b_i _i 0 | i " I, _i " {=, "`, "d, <}} the set of atomic subformulas in (x) S = { b_i / a_i, b_i / a_i + 1, b_i / a_i - 1 | i"I } "* {1/2 (b_i / a_i + b_j / a_j) | i,j"I, i"`j}(( {x1, &,xm}  returns ![(_1, lift_1), &, (_n, lift_n)] such that:+"_LRA "y1, &, yp. ("x. ) ! (_1 "( & "( _n) where {y1, &, yp} = FV() \ {x1, &,xm}, andif  M "_LRA _i then lift_i M "_LRA .)) {x1, &,xn}  returns Just M such that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.** {x1, &,xn}  returns Just M such that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.#$%&' `( a b c d e)*#$%&'()*#$%&'(*)#$%&' `( a b c d e)*W(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalInon-portable (TypeSynonymInstances, FlexibleInstances, TypeFamilies, CPP)None9;DR-Options for solving.&The default option can be obtained by .0results of optimization f0feasibility 0O0a0d0d non-basic variable xj 0nP$0Y'0M0O0Y0 g0feasibility 0O0a0d0d non-basic variable xj 0nP$0\0U0O0Y0i-set callback function for receiving messages.z+,-./01234 h i j k56789:;<=>?@ l m n o p q r s t u v w x yA zBCDEF {GH | } ~IJKLMNOPQRST UVWXYZ[\ ] f g^ _`a bcdefgh ij k lmnQ53649;>=@<?Am+,-./0213456789:;>=<?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk^?@;<=>BCAI;<=>?@A34563456934563456m:9JKLMOPQRSTUV\GH-./01234]^+>,_e`adfghWXYZ[bc8DEij567FkN^+,-./01234 h i j k56789:;<=>?@ l m n o p q r s t u v w x yA zBCDEF {GH | } ~IJKLMNOPQRST UVWXYZ[\ ] f g^ _`a bcdefgh ij k lmnX(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.comunstablePnon-portable (MultiParamTypeClasses, FlexibleInstances, DeriveDataTypeable, CPP)None09;<= Sort symbols{z{|}~         0z{|}~0|}~z{Hz{|}~           Y(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneTNon-basic variablesBasic variablesLookup a row by basic variable$                  Z(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional.non-portable (ScopedTypeVariables, Rank2Types)NoneOT-set callback function for receiving messages.            [(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe Atomic constrainte "e 0e > 0e = 0'(t,c) represents t/c, and c must be >0.Simplify conjunction of s. It returns " when a inconsistency is detected. x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LRA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LRA _i then lift_i M "_LRA . {x1, &,xm}  returns ![(_1, lift_1), &, (_n, lift_n)] such that:+"_LRA "y1, &, yp. ("x. ) ! (_1 "( & "( _n) where {y1, &, yp} = FV() \ {x1, &,xm}, andif  M "_LRA _i then lift_i M "_LRA . {x1, &,xn}  returns Just M that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}."                  \Safe {x1, &,xm}  returns Sat M such that  M "_LRA  when such M exists,returns Unsat when such M does not exists, andreturns Unknown when  is beyond LRA.EEliminate quantifiers and returns equivalent quantifier-free formula.  returns  (, lift) such that:# is a quantifier-free formula and LRA " "y1, &, yn.  !  where {y1, &, yn} = FV() " FV(), andif  M "_LRA  then lift M "_LRA .% may or may not be a closed formula.  ](c) Masahiro Sakai 2014-2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneoptimize dir obj  returns  (I, lift) whereI' is convex hull of feasible region, andlift is a function, that takes x " I8 and returns the feasible solution with objective value better than or equal to x.Note:  i (resp.   iD) is the optimal value in case of minimization (resp. maximization).If I* is empty, then the problem is INFEASIBLE.  o(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe  ^(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe '(t,c) represents t/c, and c must be >0. Atomic constraint e "e 0 e = 0Options for solving.&The default option can be obtained by .EoptCheckReal is used for checking whether real shadow is satisfiable.If it returns True0, the real shadow may or may not be satisfiable.If it returns False', the real shadow must be unsatisfiable   opt {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.   {x1, &,xn}  I returns Just M that  M "_LIRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.I7 is a set of integer variables and must be a subset of  {x1, &,xn}.'                  ! " # $ % & ' ( )   * +        #                  ! " # $ % & ' ( )   * +  _(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (MultiParamTypeClasses, FlexibleInstances)None9;<=1Quantifier-free formula of Presburger arithmetic."Literals of Presburger arithmetic.IsPos 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)) ,'(t,c) represents t/c, and c must be >0.+Linear arithmetic expression over integers.d | e means e can be divided by d. M  returns whether  M "_LIA  or not. x  returns  (, lift) such that:"_LIA "y1, &, yn. ("x. ) !  where {y1, &, yn} = FV() \ {x}, andif  M "_LIA  then lift M "_LIA . {x1, &,xm}  returns  (, lift) such that:%"_LIA "y1, &, yn. ("x1, &, xm. ) !  where {y1, &, yn} = FV() \ {x1, &,xm}, andif  M "_LIA  then lift M "_LIA . x  returns ![(_1, lift_1), &, (_m, lift_m)] such that:+"_LIA "y1, &, yn. ("x. ) ! (_1 "( & "( _m) where {y1, &, yn} = FV() \ {x}, andif  M "_LIA _i then lift_i M "_LIA . {x1, &,xm}  returns ![(_1, lift_1), &, (_n, lift_n)] such that:+"_LIA "y1, &, yp. ("x. ) ! (_1 "( & "( _n) where {y1, &, yp} = FV() \ {x1, &,xm}, andif  M "_LIA _i then lift_i M "_LIA . {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}. {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.   {x1, &,xn}  I returns Just M that  M "_LIRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.I7 is a set of integer variables and must be a subset of  {x1, &,xn}.* - . / 0 1 2 , 3 4 5 6 7 8 9 : ; < = > ? @!"#$%  $ - . / 0 1 2 , 3 4 5 6 7 8 9 : ; < = > ? @!"#$%`(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone*EEliminate quantifiers and returns equivalent quantifier-free formula.*  returns  (, lift) such that:# is a quantifier-free formula and LIA " "y1, &, yn.  !  where {y1, &, yn} = FV() " FV(), andif  M "_LIA  then lift M "_LIA .% may or may not be a closed formula.+ + {x1, &,xm} returns Sat M such that  M "_LIA  when such M exists,returns Unsat when such M does not exists, andreturns Unknown when  is beyond LIA.*+*+*+*+p(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional non-portable (FlexibleInstances)None *+*+ a(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneTB, A B C D-./0123 E F G H I J K L M N O4 P Q R S T U V W X Y Z [56789:;< \ ] ^ _ ` a b c d e f g h i j k l m n o p q,-/.0312456789:;<0123-./849:;<,567=, A B C D-./0123 E F G H I J K L M N O4 P Q R S T U V W X Y Z [56789:;< \ ] ^ _ ` a b c d e f g h i j k l m n o p qb(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneCDE   CDE   CDECDEc(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneF&Complex numbers are an algebraic type.For a complex number z,  r z# is a number with the magnitude of z8, but oriented in the positive real direction, whereas  s z has the phase of z, but unit magnitude.H+Extracts the real part of a complex number.I0Extracts the imaginary part of a complex number.J"The conjugate of a complex number.K.The nonnegative magnitude of a complex number.L5The polynomial of which the algebraic number is root. tRoots of the polynomialFGHIJKL t u v w x y zMNFGHIJKLFGHIKLJFGHIJKL t u v w x y zMNG6d(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)SafeTQ5tightening variable bounds by constraint propagation. {Gtightening intervals by ceiling lower bounds and flooring upper bounds. |Qinitial bounds constraintsintegral variableslimit of iterations } ~ {lQlQ |Q } ~ {e(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneTRresults of optimizationYAllocate 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.RSTUVWXYZ[  \ ]^ _`a bcde fRTSUVWXYZ[\]^_`abcdefWXVZ[Y^]_\abcRSTUde`fRSTUVWXYZ[  \ ]^ _`a bcde ff(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneTjresults of optimizationjklmnopq jmlknopqjklmonqpjklmnopq g(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneT uvw jmlkuvwjklmvuw   uvw hSafe }~}~}~ }~i(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone  qSafe     jNone rstrsursvwxywxzwx{wx|}~}~}~}~}~}~}~}~}~}~                                                         ! "        #$%&'(l)l*l+l,l-ll.l.l/l0l1l2l3l4l5l5l6l7l8l9l:l;l<l=l>l?l@lAlBlClDlEl$l'lFlGlHlIlJlKlLlMlNlOlPlQlRlSllTlUlVlWlXlYlZl[l\l]l^l_l`lalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl{l|l}l~ll=;==#$'K(      !"#$%&'()*+,-./0123456789:;<=>?@AABCDEFG H I J K L M N O P Q R S T U V W X Y Z [!\!\!]!^!!_!!`!a!!b!!c!!!d!!e!f!g!h!i!j!k!l!m!n!o!!!!p!q!r"s"t"u"v"K""w"'"x"y"z"F"{"|"}"~""""""""""##K##B#I#K#H###F#G#U##{#####O#P#####|############$$$$%%K%L%M%N%O%P%%%%%%%%%%%%%%%%%%%%%%%%&&H&''''''''''''('(((((((((()))))))))))))))))))))))))*+,--...../000000000000000000000000001111222 2 2 2 2 22222222%2&2'2222222222222 2!2"2#2$2%2&2'2(2)2*2+2,2-2.2/2021222324252627283345696:6;6<6=6>7?7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X8Y8Z8[8\9]9]9^9_9`9a9b9c9d:e:f:g:h:i:j:k:l:m:n:o:o:p:q:r:s:t:u:v:w:x:y:z:{:|:}:~::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::U:::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;I;J;K;L;M;N;O;P;Q;R;H;;;K;;;;;;;;;;';;;;;|;;;;;;;;;;;; ; ; ; ; ;;;;;;;;;;;;;;;;;;;;<<<< <!<"<=">?@@@#@$@%@@ABC&C'C(C)C*C+C,C-C.C/C0C1C2C3C4C5C6C7C8C9C:CSCTCUCHCECKCLCDCMCNC;C<C=C>C?C@DADADBDCDDDEDHDDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXEYEZEEEEEEE[E\E]FFFF^F_F`FFFFGaGbGcGcGdGeGfGgGGHHhHiHiHdHeHjHgHHHkIJKLLlLmLnMMMNNNOoOpPPPPqPrPsPtPuPvPwPxPyPQwQxQzR{R{RRR|R}R~RRoRRRS{S{SSSSSSSS~SSoSSSSSSSTTTTTTTTTTTTTTTTUUUoUpVVVVVVVVWWWWWWWWuWWWWWWWWWWWWWWW'WWWWWWWWWWWWWWWWWWWWWWWWWWW!W2WWWWWWWWWWWWUWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX X X X X XXXXXXXXXXYYYYYYYYYYYYY YYY!YY"Y#Y$Y%Y&Y'ZZZ2ZEZLZKZ(Z)ZUZS[[*[+[,[-[.[/[0[1[[2[3[4[5[6[7[[8[[9[[:[;[<[=[>\?\@\A]2^^^B^C^D^^E^F^;^^<^=^>___,_G_/_2_H_________E_I_J_K_L_M_N_O_P_Q`@`?aaRaSaTaSa{aUa|a8aVaWaXaaa9aa:aYaZa[a\a]a^b_b`bacbccccdcecfccgchcicjdkeeeueeleemeeeneoepe_eqee"e!eere#eseeefftfffufvff2fffgugvg2gwgxgygzg{h|h}ii:q~jjjkkk[         L       L                                        V                     l+lAlVlllllllllllllllllllllllllllllllllllllllll l l l l V !"#$%&'()*+,-./01vu23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTVUV&WXYZ[\]^_`abcdefgh,ij-kFlmno8pqrstu9v@wxyzGHIK{|}~ ####%%%%%&&''''))))))))))))))nnnnnnn-----/00'0000000000000005000000001111111333%3337?7777@777777778::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : : : : ::::::::::::::::::::: :!:":#:$:%:&:':(:):*:+:,:-:.:/:0:1:2:3:4:5:6:7:7:8:9:9:::;:<:=:>:?:@:A:B::C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:\:]:^:_::`:a:b::c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:}:~::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;&;;;;;;;;;E;$;;;;;;;;;;;;>????????@@@@@@@@@@@ABC&CCCCCCCCCDDDDDDGGGGHHHHHHHHMMOOOORSTTTTTTTTTTUUUUUUUUUUUUVVVV VVW W W W W WWWWWW$WWWWWW0WWWWWWWWWWWWW W!W"W#W$WWW%WOW&W'W(WW)W*W+WWW,W-W.W/W0W1W2XX3X4X5X6X7X8X9X:XX;X<X=X>X>X?X@XAXXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX[X\X]X^X_X`XaXbXcXdXeXfXgXhXiXjXkXYlYmYnYoYpYqYrYsYtYYuYvYwYxYyYzZ{Z{Z|Z}Z~ZZZZZZZZZZZ$ZZZZZ[[[[[[[[[[[f\]]^.^*^+^-^^^/^^^^^^^^^^^^:^^3^^^^^^^f^_._______0_____________aa&aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccc,c-c.ddddeeeeeeeeeeffffffffffff f f f f f f f g g g g{g{g g}g g g g g g g g gg g gh&i i i q q q q q q q q q !q "q #q $ %&toysolver-0.4.0-9b1JO2jzg3B8UKDfS9HpiYToySolver.Data.MIP.Base ToySolver.Internal.Data.SeqQueueToySolver.Text.SDPFileToySolver.Text.GurobiSolToySolver.Internal.UtilToySolver.Internal.TextUtilToySolver.Internal.ProcessUtilToySolver.Internal.Data.IOURefToySolver.Internal.Data.Vec,ToySolver.Internal.Data.IndexedPriorityQueue%ToySolver.Internal.Data.PriorityQueueToySolver.EUF.CongruenceClosureToySolver.EUF.EUFSolverToySolver.Data.VarToySolver.Data.Polynomial7ToySolver.Data.Polynomial.Factorization.Hensel.Internal2ToySolver.Data.Polynomial.Factorization.SquareFree'ToySolver.Data.Polynomial.GroebnerBasis3ToySolver.Data.Polynomial.Factorization.FiniteField2ToySolver.Data.Polynomial.Factorization.Zassenhaus/ToySolver.Data.Polynomial.Factorization.Integer0ToySolver.Data.Polynomial.Factorization.Rational0ToySolver.Data.Polynomial.Interpolation.Lagrange1ToySolver.Data.Polynomial.Factorization.KroneckerToySolver.Data.MIP.LPFileToySolver.Data.MIP.MPSFileToySolver.Data.MIPToySolver.Data.LBoolToySolver.Data.DeltaToySolver.Data.BooleanToySolver.Data.DNFToySolver.Data.FOL.FormulaToySolver.Data.OrdRelToySolver.Data.FOL.ArithToySolver.Data.LAToySolver.Data.LA.FOLToySolver.Data.BoolExprToySolver.Wang$ToySolver.Data.AlgebraicNumber.Sturm#ToySolver.Data.AlgebraicNumber.Root#ToySolver.Data.AlgebraicNumber.RealToySolver.Converter.SAT2PBToySolver.Converter.PB2WBOToySolver.Converter.PB2SMPToySolver.Converter.PB2LSPToySolver.Converter.ObjTypeToySolver.Converter.PBSetObjToySolver.Converter.MIP2SMT!ToySolver.Combinatorial.SubsetSumToySolver.SAT.TypesToySolver.Converter.PB2IPToySolver.Converter.SAT2IPToySolver.Converter.WBO2PBToySolver.SAT.MUS.TypesToySolver.SAT.PBO.ContextToySolver.SAT.PrinterToySolver.SAT.TheorySolver ToySolver.SATToySolver.EUF.FiniteModelFinderToySolver.SAT.MUSToySolver.SAT.MUS.QuickXplainToySolver.SAT.PBO.BCToySolver.SAT.PBO.BCDToySolver.SAT.PBO.BCD2ToySolver.SAT.PBO.MSU4ToySolver.SAT.PBO.UnsatBasedToySolver.SAT.PBOToySolver.SAT.TseitinEncoderToySolver.SAT.PBNLCToySolver.SAT.IntegerToySolver.Text.GCNFToySolver.Text.MaxSATToySolver.Converter.MaxSAT2NLPBToySolver.Converter.MaxSAT2WBOToySolver.Converter.MaxSAT2IP)ToySolver.Combinatorial.Knapsack.DPSparse(ToySolver.Combinatorial.Knapsack.DPDense#ToySolver.Combinatorial.Knapsack.BB)ToySolver.Combinatorial.HittingSet.SimpleToySolver.SAT.MUS.CAMUSToySolver.SAT.MUS.DAA&ToySolver.Combinatorial.HittingSet.SHD)ToySolver.Combinatorial.HittingSet.HTCBDD7ToySolver.Combinatorial.HittingSet.FredmanKhachiyan19967ToySolver.Combinatorial.HittingSet.GurvichKhachiyan1999#ToySolver.Arith.VirtualSubstitutionToySolver.Arith.Simplex2 ToySolver.SMTToySolver.Arith.SimplexToySolver.Arith.MIPSolver2#ToySolver.Arith.FourierMotzkin.Base"ToySolver.Arith.FourierMotzkin.FOL+ToySolver.Arith.FourierMotzkin.OptimizationToySolver.Arith.OmegaTest.BaseToySolver.Arith.Cooper.BaseToySolver.Arith.Cooper.FOLToySolver.Arith.CADToySolver.Arith.OmegaTest&ToySolver.Data.AlgebraicNumber.ComplexToySolver.Arith.BoundsInferenceToySolver.Arith.LPSolverToySolver.Arith.LPSolverHLToySolver.Arith.MIPSolverHLToySolver.Arith.LPUtilToySolver.Arith.ContiTraversoToySolver.VersionToySolver.Version.THToySolver.Data.Polynomial.Base.ToySolver.Data.Polynomial.Factorization.Hensel&ToySolver.Data.AlgebraicNumber.GraeffeToySolver.Arith.FourierMotzkinToySolver.Arith.CooperPaths_toysolver#OptDir-0.0.3-8gHnzEVeXXU3O8kttAAFLx Data.OptDirOptMaxOptMinOptDir-extended-reals-0.2.2.0-HCaDj5b7ifrFMa2i5lffcaData.ExtendedRealFiniteExtendedNegInfPosInf"queue-0.1.2-2t541s0pldsBkOyUxTMyerData.Queue.ClassesnewFifoNewFifo enqueueBatchenqueueEnqueue dequeueBatchdequeueDequeue queueSize QueueSize DenseBlock DenseMatrixBlockMatrixProblem blockStructcostsmatricesmDimnBlock blockElem denseBlock denseMatrix diagBlockparseDataString parseDataFileparseSparseDataStringparseSparseDataFilerender renderSparse $fShowProblem $fOrdProblem $fEqProblemModel combineMaybe isIntegerfracPart showRationalshowRationalAsFiniteDecimal revSequencerevMapMrevForMreadIntreadUnsignedIntegerrunProcessWithOutputCallbackSeqQueueclear$fQueueSizeSeqQueueIO$fDequeueSeqQueueIOa$fEnqueueSeqQueueIOa$fNewFifoSeqQueueIOIOURef newIOURef readIOURef writeIOURef modifyIOURef $fEqIOURefIndexUVecVec GenericVecnewgetSizereadwritemodifymodify' unsafeModify unsafeModify' unsafeRead unsafeWriteresizegrowTopushpopMaybepop unsafePoppeek unsafePeekgetElemsclonegetArray getCapacityresizeCapacity$fEqGenericVec PriorityQueueValuenewPriorityQueuenewPriorityQueueBymemberupdate getHeapArray getHeapVecresizeHeapCapacityresizeTableCapacity$fQueueSizePriorityQueueIO$fDequeuePriorityQueueIOInt$fEnqueuePriorityQueueIOInt$fNewFifoPriorityQueueIO$fDequeuePriorityQueueIOa$fEnqueuePriorityQueueIOa mUniverse mFunctions mUnspecified mEquivClasses EntityTupleEntityVAFun withVArgsSolverConstrIDFlatTermFTConstFTAppTermTAppFSym newSolvernewFSymnewFunnewConstmergemerge' mergeFlatTermmergeFlatTerm' areCongruentareCongruentFlatTermexplainexplainFlatTerm explainConstgetModelevalevalAppushBacktrackPointpopBacktrackPointtermToFlatTermflatTermToFSymfsymToFlatTerm termToFSym fsymToTerm $fVAFun(->) $fVAFunTerm$fSemigroupClass $fOrdTerm$fEqTerm $fShowTerm $fOrdFlatTerm $fEqFlatTerm$fShowFlatTerm$fEqEqn0 $fOrdEqn0 $fShowEqn0$fEqEqn1 $fOrdEqn1 $fShowEqn1 $fShowClass $fShowModel$fShowTrailItem assertEqual assertEqual'assertNotEqualassertNotEqual'checkareEqual VariablesvarsVarMapVarSetVar $fVariables[] MonomialOrder UMonomialMonomial mindicesMapUTermX UPolynomial PrettyVar pPrintVar PrettyCoeff pPrintCoeffisNegativeCoeff PrintOptions pOptPrintVarpOptPrintCoeffpOptIsNegativeCoeffpOptMonomialOrderSQFreesqfreeFactorfactorContPPcontpp PolynomialcoeffMapDegreedegVarsvarconstant fromTerms fromCoeffMapfromTermtermsltlclmcoeff lookupCoeff isPrimitivederivintegralsubstmapCoefftoMonictoUPolynomialOfdivModMPreduce prettyPrintnatdivmoddivModdividesgcdlcmexgcdpdivModpdivpmodgcd'isRootOf isSquareFreetdegtscaletmulttdividestdivtderiv tintegralmone mfromIndicesmfromIndicesMapmindicesmmultmpowmdividesmdivmderiv mintegralmlcmmgcdmcoprimelexrevlexgrlexgrevlexhenselcabook_proposition_5_10cabook_proposition_5_11 sqfreeChar0$fSQFreePolynomial$fSQFreePolynomial0StrategyNormalStrategy SugarStrategyOptions optStrategy spolynomialbasisbasis' reduceGBasis$fEqItem $fOrdItem$fDefaultOptions $fEqStrategy $fOrdStrategy$fShowStrategy$fReadStrategy$fBoundedStrategy$fEnumStrategy berlekampbasisOfBerlekampSubalgebra$fFactorPolynomial zassenhaus interpolate SOSConstraintsosLabelsosTypesosBodySOSTypeS1S2RelOpLeGeEql BoundExprLabelBoundsVarTypeContinuousVariableIntegerVariableSemiContinuousVariableSemiIntegerVariable Constraint constrLabelconstrIndicator constrExprconstrLBconstrUB constrIsLazyObjectiveFunctionobjLabelobjDirobjExprExprnameobjectiveFunction constraintssosConstraintsuserCutsvarType varBoundsvarExpr constExpr.==..<=..>=. defaultBounds defaultLB defaultUBtoVarfromVar getVarType getBoundsintersectBounds variablesintegerVariablessemiContinuousVariablessemiIntegerVariables$fVariablesSOSConstraint$fVariablesConstraint$fVariablesObjectiveFunction$fVariablesTerm$fVariablesExpr$fVariablesProblem$fVariablesEither$fDefaultVarType$fDefaultConstraint$fDefaultObjectiveFunction $fNumExpr$fDefaultProblem $fEqVarType $fOrdVarType $fShowVarType$fEqExpr $fOrdExpr $fShowExpr$fEqObjectiveFunction$fOrdObjectiveFunction$fShowObjectiveFunction$fEqConstraint$fOrdConstraint$fShowConstraint $fEqRelOp $fOrdRelOp $fEnumRelOp $fShowRelOp $fEqSOSType $fOrdSOSType $fEnumSOSType $fShowSOSType $fReadSOSType$fEqSOSConstraint$fOrdSOSConstraint$fShowSOSConstraint parseString parseFileparser $fEqBoundType$fOrdBoundType$fShowBoundType$fReadBoundType$fEnumBoundType$fBoundedBoundTypereadFile readLPFile readMPSFile parseLPStringparseMPSString writeFile writeLPFile writeMPSFile toLPString toMPSStringLBoollTruelFalselUndeflnotliftBool unliftBool $fShowLBool $fEqLBoolDeltadeltafromRealrealPart deltaPartfloor'ceiling' isInteger'$fRealFracDelta $fRealDelta$fFractionalDelta $fNumDelta$fVectorSpaceDelta$fAdditiveGroupDelta $fOrdDelta $fEqDelta $fShowDeltaBoolean.=>..<=>. IfThenElseite ComplementnotBMonotoneBooleantruefalse.&&..||.andBorB iteBoolean $fBooleanBool$fIfThenElseBoolBool$fMonotoneBooleanBool$fComplementBool $fBoolean(->)$fIfThenElse(->)(->)$fMonotoneBoolean(->)$fComplement(->) $fBoolean(,)$fIfThenElse(,)(,)$fMonotoneBoolean(,)$fComplement(,)DNFunDNF $fBooleanDNF$fIfThenElseDNFDNF$fMonotoneBooleanDNF$fComplementDNF $fShowDNFFormulaTFAtomAndOrNotImplyEquivForallExistspushNot$fBooleanFormula$fIfThenElseFormulaFormula$fMonotoneBooleanFormula$fComplementFormula$fVariablesFormula $fShowFormula $fEqFormula $fOrdFormulaOrdRelIsOrdRel.<..>.ordRelIsEqRel./=.LtGtNEqflipOpnegOpshowOpevalOp fromOrdRel$fFunctorOrdRel$fVariablesOrdRel$fIsOrdReleOrdRel$fIsEqReleOrdRel$fComplementOrdRel $fShowOrdRel $fEqOrdRel $fOrdOrdRel SatResultUnknownUnsatSatConst:+::*::/:evalExprevalAtom$fIsOrdRelExprFormula$fIsEqRelExprFormula $fFunctorExpr$fFractionalExpr$fShowSatResult $fEqSatResult$fOrdSatResult BoundsEnvunitVarasConstmapCoeffWithVar evalLinearlift1 applySubst applySubst1extract extractMaybeshowExprshowAtomapplySubstAtomapplySubst1AtomsolveForcomputeInterval$fVectorSpaceExpr$fAdditiveGroupExpr $fNFDataExpr $fReadExpr fromFOLAtom toFOLFormula fromFOLExpr toFOLExprBoolExprITEfoldsimplify$fBooleanSimplify$fIfThenElseSimplifySimplify$fMonotoneBooleanSimplify$fComplementSimplify$fVariablesBoolExpr$fBooleanBoolExpr$fIfThenElseBoolExprBoolExpr$fMonotoneBooleanBoolExpr$fComplementBoolExpr$fHashableBoolExpr$fNFDataBoolExpr$fTraversableBoolExpr$fFoldableBoolExpr$fMonadBoolExpr$fApplicativeBoolExpr$fFunctorBoolExpr $fEqBoolExpr $fOrdBoolExpr$fShowBoolExpr$fReadBoolExpr$fDataBoolExprSequentisValid SturmChain sturmChainnumRoots numRoots'separate separate'halvehalve'narrownarrow'approxapprox' normalizePolyrootAddrootMul rootShift rootScale rootRecip rootSimpPoly rootNthRootlift2findPolyAReal realRoots realRootsExapproxIntervalnthRootrefineIsolatingIntervalminimalPolynomialisolatingInterval isRationalisAlgebraicIntegerheight rootIndex simpARealPoly goldenRatio$fPrettyCoeffAReal $fPrettyAReal $fDegreeAReal$fRealFracAReal $fRealAReal$fFractionalAReal $fNumAReal $fOrdAReal $fEqAReal $fShowARealconvert convertWBOObjTypeObjNone ObjMaxOne ObjMaxZero $fEqObjTypesetObj YicesVersionYices1Yices2LanguageSMTLIB2YICES optLanguage optSetLogic optCheckSAToptProduceModel optOptimize$fShowYicesVersion$fEqYicesVersion$fOrdYicesVersion$fEnumYicesVersion$fBoundedYicesVersion$fShowLanguage $fEqLanguage $fOrdLanguage $fShowOptions $fEqOptions $fOrdOptionsWeight maxSubsetSum minSubsetSum subsetSum XORClause PBLinExactly PBLinAtLeastPBLinSum PBLinTermExactlyAtLeastClauseLitMapLitSetLitIModelevalVarvalidVarlitUndefvalidLitliterallitNotlitVar litPolarityevalLitnormalizeClauseinstantiateClause clauseSubsume evalClauseclauseToPBLinAtLeastnormalizeAtLeastinstantiateAtLeast evalAtLeast evalExactlynormalizePBLinSumnormalizePBLinAtLeastnormalizePBLinExactlyinstantiatePBLinAtLeastinstantiatePBLinExactly cutResolvecardinalityReductionnegatePBLinAtLeast evalPBLinSumevalPBLinAtLeastevalPBLinExactly pbLowerBound pbUpperBound pbSubsumenormalizeXORClauseinstantiateXORClause evalXORClause $fIModel(->) $fIModelArray$fIModelUArrayMSSSSMCSCSMUSUS Normalized SimpleContextContextgetObjectiveFunctionevalObjectiveFunctionisUnsatgetBestSolution getLowerBoundsetUnsat addSolution addLowerBound logMessage getBestValue getBestModel isOptimum isFinishedgetSearchUpperBound setFinishednewSimpleContextnewSimpleContext2setOnUpdateBestSolutionsetOnUpdateLowerBound setLogger normalize$fContextNormalized$fContextSimpleContext satPrintModelmaxsatPrintModel pbPrintModel musPrintSol TheorySolver thAssertLitthCheck thExplainthPushBacktrackPointthPopBacktrackPointthConstructModel emptyTheoryRestartStrategyMiniSATRestarts ArminRestarts LubyRestarts PBHandlerTypePBHandlerTypeCounterPBHandlerTypePuebloLearningStrategyLearningClauseLearningHybridConfigconfigRestartStrategyconfigRestartFirstconfigRestartIncconfigLearningStrategyconfigLearntSizeFirstconfigLearntSizeInc configCCMinconfigEnablePhaseSaving%configEnableForwardSubsumptionRemoval&configEnableBackwardSubsumptionRemovalconfigRandomFreqconfigPBHandlerTypeconfigEnablePBSplitClausePartconfigCheckModelconfigVarDecayconfigConstrDecayBudgetExceeded getVarFixed getLitFixedgetFixedLiteralsvarDecayActivityvarBumpActivitygetNVarsnVarsnAssignsgetNConstraints nConstraintsgetNLearntConstraintsnLearntnewSolverWithConfignewVarnewVarsnewVars_resizeVarCapacity addClause addAtLeast addAtMost addExactly addPBAtLeast addPBAtMost addPBExactlyaddPBAtLeastSoftaddPBAtMostSoftaddPBExactlySoft addXORClauseaddXORClauseSoftsolve solveWithgetFailedAssumptionsgetAssumptionsImplications getConfig setConfig modifyConfigsetRestartStrategysetRestartFirstdefaultRestartFirst setRestartIncdefaultRestartIncsetLearningStrategysetLearntSizeFirstdefaultLearntSizeFirstsetLearntSizeIncdefaultLearntSizeIncsetCCMin defaultCCMinsetVarPolarity setCheckModel setRandomFreqdefaultRandomFreq setRandomGen getRandomGen setConfBudgetsetPBHandlerTypesetPBSplitClausePartgetPBSplitClausePartdefaultPBSplitClausePartsetEnablePhaseSavinggetEnablePhaseSavingdefaultEnablePhaseSaving"setEnableForwardSubsumptionRemoval"getEnableForwardSubsumptionRemoval&defaultEnableForwardSubsumptionRemoval#setEnableBackwardSubsumptionRemoval#getEnableBackwardSubsumptionRemoval'defaultEnableBackwardSubsumptionRemoval setTheory$fDefaultRestartStrategy $fConstraintHandlerTheoryHandler$fHashableTheoryHandler#$fConstraintHandlerXORClauseHandler$fHashableXORClauseHandler$fEqXORClauseHandler"$fConstraintHandlerPBHandlerPueblo$fHashablePBHandlerPueblo$fEqPBHandlerPueblo#$fConstraintHandlerPBHandlerCounter$fHashablePBHandlerCounter$fEqPBHandlerCounter!$fConstraintHandlerAtLeastHandler$fHashableAtLeastHandler$fEqAtLeastHandler $fConstraintHandlerClauseHandler$fHashableClauseHandler$fEqClauseHandler($fConstraintHandlerSomeConstraintHandler$fHashableSomeConstraintHandler$fDefaultPBHandlerType$fDefaultLearningStrategy$fDefaultConfig$fExceptionBudgetExceeded$fShowBudgetExceeded$fShowLearningStrategy$fEqLearningStrategy$fOrdLearningStrategy$fEnumLearningStrategy$fBoundedLearningStrategy$fShowPBHandlerType$fEqPBHandlerType$fOrdPBHandlerType$fEnumPBHandlerType$fBoundedPBHandlerType$fEqTheoryHandler$fEqSomeConstraintHandler$fShowRestartStrategy$fEqRestartStrategy$fOrdRestartStrategy$fEnumRestartStrategy$fBoundedRestartStrategy $fShowConfig $fEqConfig $fOrdConfig mRelations GenFormulaPAppTmAppTmVarGenLitPosNegPSym toSkolemNF showEntity showModel evalFormulaevalTerm evalClauses evalClausesU findModel$fVarsSGenAtom$fVarsSGenTerm$fVarsGenFormula$fBooleanGenFormula $fIfThenElseGenFormulaGenFormula$fComplementGenFormula$fMonotoneBooleanGenFormula $fVarsAtom $fVarsTerm $fVarsGenLit$fComplementGenLit$fVars[] $fShowGenLit $fEqGenLit $fOrdGenLit $fShowAtom$fEqAtom $fOrdAtom$fShowGenFormula$fEqGenFormula$fOrdGenFormula$fShowSGenTerm $fEqSGenTerm $fOrdSGenTerm$fShowSGenAtom $fEqSGenAtom $fOrdSGenAtom optLogger optUpdateBest optLitPrinterfindMUSAssumptionsoptEnableHardeningoptEnableBiasedSearchoptSolvingNormalFirst OptimizerSearchStrategy LinearSearch BinarySearchAdaptiveSearch UnsatBasedMSU4BCBCDBCD2 newOptimizer newOptimizer2optimizegetSearchStrategysetSearchStrategy!defaultEnableObjFunVarsHeuristicsgetEnableObjFunVarsHeuristicssetEnableObjFunVarsHeuristicsdefaultTrialLimitConfgetTrialLimitConfsetTrialLimitConf$fDefaultSearchStrategy$fEqSearchStrategy$fOrdSearchStrategy$fShowSearchStrategy$fEnumSearchStrategy$fBoundedSearchStrategyPolaritypolarityPosOccurspolarityNegOccursEncoder encSolver newEncodersetUsePB addFormula encodeFormulaencodeFormulaWithPolarity encodeConjencodeConjWithPolarity encodeDisjencodeDisjWithPolarity encodeITEencodeITEWithPolaritygetDefinitionsnegatePolarity polarityPos polarityNeg polarityBoth polarityNone $fEqPolarity$fShowPolarityPBSumPBTermlinearizePBSumlinearizePBSumWithPolarity evalPBSum linearize addConstraintaddConstraintSoftGClause GroupIndexGCNFnumVars numClauseslastGroupIndexclausesWeightedClauseWCNFtopCostparseByteString solveGenericsolveInt solveIntegerminimalHittingSetsenumMinimalHittingSets optOnMCSFound optOnMUSFound optKnownMCSes optKnownMUSes optKnownCSesenumMCSAssumptionsallMCSAssumptionsallMUSAssumptionscamusdaaFailure optSHDCommand optSHDArgs optOnGetLineoptOnGetErrorLine$fExceptionFailure $fShowFailureMethod MethodToda MethodKnuthoptHTCBDDCommand optMethod$fDefaultMethod $fEqMethod $fOrdMethod $fShowMethodisCounterExampleOf condition_1_1condition_1_1_solve condition_1_2condition_1_2_solve condition_1_3condition_1_3_solve condition_2_1condition_2_1_solve isRedundantdeleteRedundancy occurFreq areDualDNFs checkDuality checkDualityA checkDualityB"findPrimeImplicateOrPrimeImplicantgenerateCNFAndDNF QFFormula evalQFFormulaprojectprojectN projectCases projectCasesNsolveQFFormulaRawModelobjLimit OptResultOptimum UnboundedObjLimit PivotStrategyPivotStrategyBlandRulePivotStrategyLargestCoefficientBound ConstrIDSet SolverValuetoValue showValue GenericSolver cloneSolver boundValueboundExplanationsetPivotStrategy assertAtom assertAtom' assertAtomEx assertAtomEx' simplifyAtom assertLower assertLower' assertUpper assertUpper'getObj setOptDir getOptDirisBasicVariableisNonBasicVariable isFeasible isOptimal dualSimplex getRawModel getObjValuegetLBgetUB getTableaugetValuegetRowgetColgetCoeff clearLoggerdump$fSolverValueDelta$fSolverValueRatio$fEqPivotStrategy$fOrdPivotStrategy$fEnumPivotStrategy$fShowPivotStrategy$fReadPivotStrategy$fShowOptResult $fEqOptResult$fOrdOptResultFunDef ValRationalValBoolValUninterpreted VASortFun ExceptionError UnsupportedEApEFracFunTypeSortSSymSSymBoolSSymRealSSymUserDeclared ssymAritysBoolsReal declareSSym declareSort declareFSym declareFun declareConstassert assertNamedgetGlobalDeclarationssetGlobalDeclarationsexprSortcheckSATcheckSATAssumingvalSortevalFSymgetUnsatAssumptions getUnsatCore $fVAFunExpr$fVASortFun(->)$fVASortFunSort$fExceptionException$fIsOrdRelExprExpr$fIsEqRelExprExpr $fBooleanExpr$fIfThenElseExprExpr$fComplementExpr$fMonotoneBooleanExpr $fShowSSym$fEqSSym $fOrdSSym $fShowSort$fEqSort $fOrdSort $fShowFDef$fShowException $fEqValue $fShowValueRowColIndexRowIndexTableau emptyTableau objRowIndexpivot lookupRowaddRow setObjFun currentValuecurrentObjValueisValidTableausimplexphaseIprimalDualSimplextoCSV$fShowPivotResult$fEqPivotResult$fOrdPivotResultsetShowRational setNThreadConstrIsNonnegIsPosIsZeroRatExprZtoRateqR fromLAAtomtoLAAtomconstraintsToDNF evalBoundsboundsToConstrs collectBoundsproject' projectN'solve'$fVariablesConstr $fShowConstr $fEqConstr $fOrdConstr solveFormulaeliminateQuantifierseliminateQuantifiers' optCheckRealcheckRealNoCheck checkRealByFMsolveQFLIRAConjzmod Divisible.|. $fMonoidLCM$fIsOrdRelExprBoolExpr$fIsEqRelExprBoolExpr$fComplementLit$fVariablesLit $fShowLit$fEqLit$fOrdLit $fShowWitnessCellPointIntervalRootOf findSampleevalCell evalPoint $fEqPoint $fOrdPoint $fShowPoint$fEqCell $fOrdCell $fShowCellcheckRealByCAD checkRealByVScheckRealBySimplexAComplex:+imagPart conjugate magnitude$fFractionalAComplex $fNumAComplex $fEqAComplex$fShowAComplex inferBoundsLP emptySolver putTableaudefine#addConstraintWithArtificialVariabletableautwoPhaseSimplexcollectNonnegVarsOptUnsatmaximizeminimize$fOrdErr$fEqErr $fShowErr $fEnumErr $fBoundedErrtoStandardFormtoStandardForm'versionpackageVersionsgitHashcompilationTime getGitHashgitHashQcompilationTimeQ pDataFilepSparseDataFilepComment pBlockStructpCostspDenseMatricespSparseMatricesnat_lineintrealsign renderImpl renderVecshowRatconcatSsepBySbase Text.Read integer-gmpGHC.Integer.TypeIntegerreadUnsignedIntprocess-1.4.2.0System.Processproc withForkWait ignoreSigPipe cloneArraycopyToghc-prim GHC.ClassesOrdnewPriorityQueueBy#lt#heaptableupdownleftrightparentEqnEqn1Eqn0 TrailItem TrailMergeTrailSetLookupGenLevelsvDefssvRepresentativeTable svClassListsvParent svUseList svLookupTable svPendingsvERepresentativeTable svEClassListsvEHighestNodeTablesvEPendingProofssvTrail svLevelGensvIsAfterBacktrackingClassClassSingleton ClassUnion classSize classToList classForM_ getNFSyms propagatecheckInvariant addToTrailgetCurrentLevel getLevelGeninitAfterBacktrackinglookup setLookup addToPendinggetRepresentative getParentgetERepresentativegetHighestNodenearestCommonAncestor maybeToIntSet svCCSolversvDisequalities svExplanationsvBacktrackPoints1data-default-class-0.1.2.0-FYQpjIylblBDctdkHAFeXAData.Default.Classdef asConstantscalezeroplusnegmultisZerocontIppIprettyPrintTermaddPrecmulPrecratPrecexpPrecappPrecmfromIndicesMap'$fHashableMonomial$fVarsMonomialv$fVarMonomialv$fDegreeMonomial$fNFDataMonomial$fIsStringMonomial$fShowMonomial $fHashableX $fNFDataX $fPrettyVarX$fPrettyVarInt$fPrettyCoeffPolynomial$fPrettyCoeffPrimeField$fPrettyCoeffRatio$fPrettyCoeffInteger$fPrettyPolynomial$fDefaultPrintOptions $fContPPRatio$fContPPInteger$fDegreePolynomial$fVarsPolynomialv$fVarPolynomialv$fHashablePolynomial$fNFDataPolynomial$fShowPolynomial$fVectorSpacePolynomial$fAdditiveGroupPolynomial$fIsStringPolynomial$fNumPolynomialfItemiFstiSndiCmpiLCMitempairssqfree' polyPthRootnorm2sqliftsearchdiv'combfactor'factor2isUPolyZtoZxvalues interleavefactors primeFactors splitConstMBounds2char'string'sepcommenttokidentvariablelabelreservedproblemendconstraintSection subjectTo constraintrelOplazyConstraintsSectionuserCutsSection boundsSectionbound boundExprinfgeneralSection binarySection semiSection sosSectionexprtermqexprqtermqfactornumberexecM writeString writeCharwriteVarrender' renderExpr showCoeff showConstTerm renderLabelrenderOprenderConstraintrenderBoundExprrenderVariableListfillremoveRangeConstraintsremoveEmptyExpr BoundTypeLOUPFXFRMIPLBVLIUISCSIColumnspace'spaces'spaces1' commentlinenewline'rowcolumnstringLn nameSectionobjSenseSectionobjNameSection rowsSectionlazyConsSectionrowsBody colsSection rowAndVal rhsSection rangesSection boundTypequadObjSectionqMatrixSectionqcMatrixSectionindicatorsSectionwriteSectionHeader writeFieldsnameRows quadMatrixcheckAtMostQuadraticGHC.Realfloorceiling normalizeExpr showExprWithSimplify runSimplifyisTrueisFalseisValid'pickboundscountSignChanges countChanges boundIntervalproperFraction'properFraction truncate'truncateround'roundRealRoot realRoots'realRoot realRoot' scaleAReal shiftARealnthRootsNthRootgraeffesMethodf'testtest2 showConstrsum'showSumshowTermshowLitgenObjEnvunlinesSlistand'or'not'intExprrealExprintNumrealNumrel2reltoReal conditionsnonAdjacentPairsencodeisInttestFiletestdatanormalizeWeightsToPositive normalize2normalizeGCDLenormalizeGCDEq maxSubsetSum'maxSubsetSumInteger'maxSubsetSumInt' GHC.TypesTrueFalseGHC.BaseNothingconvExprconvVarrelaxGErelaxLEmtransnBasenObjectiveFunctionnOffsetscGetObjectiveFunctionscEvalObjectiveFunction scUnsatRefscBestSolutionRefscLowerBoundRefscOnUpdateBestSolutionRefscOnUpdateLowerBoundRef scLoggerRefsplitconstrPropagateSomeConstraintHandlerconstrReasonOfsvVarInc svConstrInc ldWatches vdWatcheswatchLitwatchVar getNAssignedpbSplitClausePart backtrackToreasonOf TheoryHandlerXORClauseHandlerxorLits xorActivityxorHashPBHandlerPueblo puebloTerms puebloDegreepuebloMaxSlack puebloWatchespuebloWatchSumpuebloActivity puebloHashPBHandlerCounterpbTermspbDegree pbCoeffMap pbMaxSlackpbSlack pbActivitypbHashAtLeastHandler atLeastLits atLeastNumatLeastActivity atLeastHash ClauseHandlerclaLits claActivityclaHashCHClause CHAtLeast CHPBCounter CHPBPueblo CHXORClauseCHTheoryConstraintHandlertoConstraintHandlershowConstraintHandler constrAttach constrDetachconstrIsLockedconstrOnUnassignedisPBRepresentabletoPBLinAtLeast isSatisfiedconstrIsProtected constrWeightconstrReadActivityconstrWriteActivity SearchResult SRFinished SRRestartSRBudgetExceeded VarActivitysvOk svVarQueue svTrailLimitsvTrailNPropagated svVarData svConstrDB svLearntDBsvTheorySolversvTheoryCheckedsvModelsvFailedAssumptionssvAssumptionsImplications svNDecisionsvNRandomDecision svNConflict svNRestart svNLearntGCsvNRemovedConstrsvConfig svRandomGen svConfBudgetsvLogger svStartWC svLastStatWC svAssumptions svLearntLimsvLearntLimAdjCntsvLearntLimSeqLitData ldOccurListVarData vdPolarity vdPosLitData vdNegLitData vdActivityvdValue vdTrailIndexvdLevelvdReasonvdOnUnassigned levelRoot newVarData newLitDatavarDatalitDatavarValuelitValue getNFixedvarLevellitLevel varReason varAssignNomarkBad bcpDequeue bcpIsEmpty bcpCheckEmptybcpClearassignByassignassign_unassignaddOnUnassigned unwatchLit unwatchVaraddToDB addToLearntDBreduceDB varActivityvarRescaleAllActivitylearntConstraintsltVarsolve_checkForwardSubsumptionremoveBackwardSubsumedBybackwardSubsumedByremoveConstraintHandlers pickBranchLitdecidededucededuceBanalyzeConflict analyzeFinalanalyzeConflictHybridpbBacktrackLevelminimizeConflictClauseminimizeConflictClauseLocalminimizeConflictClauseRecursive peekTrailpopTrailgetDecisionLevelpushDecisionLevelpopDecisionLevelconstructModelsaveAssumptionsImplicationsconstrDecayActivityconstrBumpActivityconstrRescaleAllActivity resetStatprintStatHeader printStat showTimeDiffattachdetachisLocked isReasonOf findForWatch findForWatch2 claGetSizenewClauseHandlerbasicAttachClauseHandlernewAtLeastHandlerbasicAttachAtLeastHandler newPBHandlernewPBHandlerPromoted pbOverSAT pbToAtLeast pbToClausenewPBHandlerCounter puebloAMaxnewPBHandlerPueblopuebloGetWatchSum puebloWatch puebloUnwatchpuebloPropagatepuebloUpdateWatchSumnewXORClauseHandlerbasicAttachXORClauseHandler getTheorydeduceT mkRestartSeqminiSatRestartSeqarminRestartSeqlubyRestartSeqlubyallManyMshiftdefaultHashWithSalt debugModecheckSatisfieddumpVarActivitydumpConstrActivityloglogIOSGenAtomSGenTermSubst GroundClause GroundLit GroundAtom GroundTermSClauseSLitSAtomSTermSPAppSEqSTmAppSTmVartoNNFtest_toSkolemNFflatten test_flattenshowEntityTuple enumSubstsimplifyGroundClause collectFSym collectPSymsolveWBOCoreInfocoreLitscoreLBcoreUB coreMidValue coreUnionrefineLBrefineUB coreLBRefcoreUBSelectors newCoreInfodeleteCoreInfo getCoreLB optContext optSolveroptSearchStrategyRef optEnableObjFunVarsHeuristicsRefoptTrialLimitConfRef linSearch binSearchadaptiveSearch tweakParamsencUsePB encConjTable encITETableencodeToClause isComment parseLine parseCNFLineseqList parseWCNFLineparseWCNFLineBSparseCNFLineBS parseClauseBS isCommentBStest1minimalHittingSets'propagateChoicemaintainNoSupersetsnubOrdexecSHD execHTCBDDxhicontainers-0.5.7.1Data.IntSet.Basesize Data.Set.Basedisjoint intersectisHittingSetOfvolumee isIrredundantcheckDualityA' solveSmallcheckDualityB'findImplicateOrImplicantminimizeImplicantminimizeImplicateevalDNFevalCNFgtestA1testA2testA3testA4testB1 projectCases' simplifyLitcollect increaseNB decreaseNBBacktrackPoint bpSavedLB bpSavedUB svTableausvLBsvUBsvVCntsvOptDirsvDefDBsvPivotStrategysvNPivotobjVarcloneBacktrackPointwithBacktrackpointbpSaveLBbpSaveUBsetRowselectViolatingBasicVariableselectEnteringVariable canIncrease canDecrease canIncrease1 canDecrease1 dualRTestprunepivotAndUpdatefindMtestLBtestUBbasicVariables recordTime showDeltatest4test5test6dumpSizecheckFeasibilitycheckNBFeasibilitycheckOptimalitymDefs mBoolModel mLRAModel mEUFModelmEUFTrue mEUFFalsemEntityToRationalmRationalToEntity arityVAFun withSortVArgsarityVASortFunAssertionLevelalSavedNamedAssertions alSavedFDefs alSelectorsmtSATsmtEncsmtEUFsmtLRAsmtEUFAtomDefssmtLRAAtomDefssmtBoolTermDefssmtRealTermDefs smtEUFTrue smtEUFFalse smtEUFModel smtLRAModelsmtGlobalDeclarationsRefsmtFDefssmtNamedAssertionssmtAssertionStacksmtUnsatAssumptions smtUnsatCoreFDefFBoolVarFLRAVarFEUFFun exprSort' exprToFormulachainpairwise abstractEq exprToLRAExprabstractLRAAtomlraExprToEUFTermlraExprFromTerm exprToEUFTerm exprToEUFArgabstractEUFAtomformulaToEUFTermformulaFromEUFTermconnectBoolTerm getContextLit valToBool valToRational valToEntity entityToValuePDResultPDUnsat PDOptimal PDUnbounded PivotResultPivotUnbounded PivotFinished PivotSuccess normalizeRow copyObjRow isImproving primalPivot dualPivotremoveArtificialVariablespdPivotNodendLPndDepthndValueMIP mipRootLPmipIVsmipBest mipNThread mipLoggermipOnUpdateBestSolutionmipShowRationalbranchAndBoundviolatedderiveGomoryCutcanDeriveGomoryCutfromRatevalRatleRltRgeRgtR subst1Constr evalConstrfindEqnegateDNFConstr*data-interval-1.2.0-2pYjfNuD8OVA1OlWQ3pvqj Data.Interval lowerBound upperBound projectToObj' projectTo' IntervalZBoundsZleZltZgeZgtZeqZapplySubst1Constr evalBoundsZcollectBoundsZisExactchooseVariable extractEq eliminateEqunivZ intersectZpickupZpickupLCMgetLCMWitnessWCase1WCase2subst1 evalWitness checkedDiv testHagiyatest3 AssumptionCoeffSignConfshowCell showPoint emptySignConf showSignConfnormalizeSignConfKeylookupSignConfmr test_mr_1 test_mr_2runMassume buildSignConfcollectPolynomialsrefineSignConfemptyAssumption propagateEq propagateSignisOkay dropConstantsassumption2condcomputeSignSetshowDNFdumpProjection dumpSignConftest1atest1btest1ctest2atest2b test_projecttest_project_printtest_project_2test_project_3_print test_solvetest_collectPolynomialstest_collectPolynomials_printtest_buildSignConftest_buildSignConf_printtest_buildSignConf_2test_buildSignConf_2_printtest_buildSignConf_3test_buildSignConf_3_printGHC.NumabssignumrootstightenToIntegerCstrictaddArtificialVariablegetArtificialVariablesclearArtificialVariablesgetDefs isSingleVarisSingleNegatedVar expandDefs expandDefs'introduceArtificialVariablesnormalizeConstraint example_3_2test_3_2 example_3_5test_3_5 example_4_1test_4_1 example_4_2test_4_2 example_4_3test_4_3 example_4_5test_4_5 example_4_6test_4_6 example_4_7test_4_7kuhn_7_3 test_kuhn_7_3testAllErr ErrUnboundedErrUnsatndSolver ndTableau ndLowerBoundtableau'conv mkInitialNodeisStrictlyBettertraverseBBTreeexample1test1'example2mkModel costOrdering elimOrderingcatchIObindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName