!]h E      !"#$%&'()*+,-./01 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 efghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./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"{"|"}"~"""""""""""""""""""""""""""""""""""########$$$$$$$$$$$$$$$$$$$$$$$$$$$%&&&''''''''''''''''''''''''''''(())))))))))))))))))))))))))))))))))) ) ) ) ) ))))))))))))))))))) )!)")#)$)%)&)')()))*)+),)-).)/)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/h0i1j1k1l1m1n1o1p1q1r1s1t1u2v2w2x2y2z2{2|2}2~22333333333333333333333333344444444444444444444444555555555556777777777788888888888888888888888888888888888888899999999999::::::;;;;; ; ; ; ; ;;;;;;;;;;;;;;;;;;; ;!<"<#<$<%<&<'<(<)<*<+<,<-<.</<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>{>|>}>~????????????????????@AAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCDDEEEEEEEEEFGGGGHHHHHHHHHHIIJJJJJJKKKKLLLLLLMMNNNNNNOOPPPPPPQQRRRRRRSSSSSSSSSSSSS S S S S STTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;U<U=U>U?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzU{U|U}U~UUUUUUUUUUVVWWWWWWWWWWWWWWXXXYYYYYYYYYYZ[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\]]]]]]]]^^__````````````````aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbb b b b b bbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;b<b=b>b?b@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc[c\c]c^c_c`cacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczc{c|c}c~cccccccccccccccccccccccccccccccdddddddddeeeeeeeeffffgggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhiiiiiijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkk k k k k kkkkllllllllllllmmn n!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4p5p6p7p8p9p:p;p<p=p>p?p@pAqBqCrDrEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTtUtVtWtXtYtZt[t\t]t^t_t`tatbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytzt{t|t}t~tttttttttttttttttttuvwwwwwwwxyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} } } } } }}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*~+~,~-{.{/{0{123456789:;<=>?@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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C DSafe E F G H I J K(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental0non-portable (ScopedTypeVariables, BangPatterns)SafeX) L toysolver[Augmenting path b_0, a_0, &, b_n, a_n is represented as ([(a_n, b_n) .. (a_0, b_0)], b_0). M toysolvervAlternating path b_0, a_0, &, b_{n-1}, a_{n-1}, b_n is represented as (b_n, [(a_{n-1}, b_{n-1}) .. (a_0, b_0)], b_0). toysolver;Maximum cardinality matching on a bipartite graph (A+B, E). N toysolverFInternal low-level routine for maximum cardinality bipartite matching.It returns a maximum cardinality matching M together with sets of vertexes reachable from exposed B vertexes (b"B such that "a"A. (a,b)" M) on a directed graph (A+B, {a!b|(a,b)"M}"*{b!a|(a,b)"E\M}). toysolver@Maximum weight matching of a complete bipartite graph (A+B,AB). toysolver5Maximum weight matching of a bipartite graph (A+B,E). O toysolverHMaximum weight maximum matching of a complete bipartite graph (A+B,AB). toysolverHMaximum weight perfect matching of a complete bipartite graph (A+B,AB).+The two sets must be same size (|A| = |B|). toysolverHMinimum weight perfect matching of a complete bipartite graph (A+B,AB).+The two sets must be same size (|A| = |B|). toysolverFMaximum weight perfect matching of a complete bipartite graph (A+B,E).&If no such matching exist, it returns Nothing. toysolver>Minimum weight perfect matching of a bipartite graph (A+B, E).&If no such matching exist, it returns Nothing. toysolver;Minimum cardinality edge cover of bipartite graph (A+B, E). toysolver6Minimum weight edge cover of bipartite graph (A+B, E). toysolverAMinimum weight edge cover of complete bipartite graph (A+B, AB).  toysolver vertex set A toysolver vertex set B toysolverset of edges E"AB N toysolver vertex set B toysolver:set of edges E"AB represented as a mapping from B to 2^A. toysolver@partial matching represented as an injective mapping from A to B toysolver vertex set A toysolver vertex set B toysolverweight of edges AB toysolver vertex set A toysolver vertex set B toysolveredges E"AB and their weights O toysolver vertex set A toysolver vertex set B toysolverweight of edges AB toysolver vertex set A toysolver vertex set B toysolverweight of edges AB toysolver vertex set A toysolver vertex set B toysolverweight of edges AB toysolver vertex set A toysolver vertex set B toysolveredges E"AB and their weights toysolver vertex set A toysolver vertex set B toysolveredges E"AB and their weights toysolver vertex set A toysolver vertex set B toysolver edges E"AB toysolver vertex set A toysolver vertex set B toysolveredges E"AB and their weights toysolver vertex set A toysolver vertex set B toysolverweight of edges AB  (c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe" P toysolverxhi n ** xhi n == n" toysolverFind xs such that xs  (f,g) unless ! f g.' toysolver' F tests whether F contains redundant implicants.( toysolver.Removes redundant implicants from a given DNF.) toysolveroccurFreq x F computes |{I"F | x"I}| / |F|* toysolverareDualDNFs 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 =  Q f +  Q g.+ toysolver Synonym for -., toysolvercheckDualityA 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 =  Q f +  Q g.- toysolvercheckDualityB 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 =  R f +  R g.) toysolver a variable x toysolvera DNF F* toysolvera monotone boolean function f given in DNF toysolvera monotone boolean function g given in DNF, toysolvera monotone boolean function f given in DNF toysolvera monotone boolean function g given in DNF- toysolvera monotone boolean function f given in DNF toysolvera monotone boolean function g given in DNF !"#$%&'()*+,-*+,-'()!#% "$&(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe..(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeԠ/0/0 (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableSafe=?@ACH = toysolver&A problem is essentially a pair of an IntSet (universe ) and a monotone pure function IntSet -> Bool ( isInterestingF), but we generalize a bit for potentialial optimization opportunity."For simple cases you can just use ; instance.? toysolver-Interesting sets are lower closed subsets of > , i.e. if xs is interesting then ys " xs is also interesting.@ toysolverIf xs is interesting it returns InterestingSet ys where ys is an interesting superset of xs. If xs is uninteresting it returns UninterestingSet ys where ys is an uninteresting subset of xs.A toysolvergrow xs" computes maximal interesting set ys that is a superset of xs.B toysolver shrink xs$ computes minimal uninteresting set ys that is a subset of xs.C toysolverIf xs is an interesting set maximalInterestingSet prob xs returns Just ys such that ys& is a maximal interesting superset of xs, otherwise it returns Nothing.D toysolverIf xs is an uninteresting set minimalUninterestingSet prob xs returns Just ys such that ys& is a minimal uninteresting subset of xs, otherwise it returns Nothing.E toysolverIf xs is an uninteresting set 6minimalUninterestingSetOrMaximalInterestingSet prob xs returns Left ys such that ys& is a minimal uninteresting subset of xs. If xs is an interesting set 6minimalUninterestingSetOrMaximalInterestingSet prob xs returns Right ys such that ys& is a maximal interesting superset of xsI toysolverDefault implementation of A using @.J toysolverDefault implementation of B using @.K toysolverDefault implementation of maximalUninterestingSet using @ and A.L toysolverDefault implementation of D using @ and B.M toysolverDefault implementation of E using @, B A.123456789:;<=B>A?@CDEFGHIJKLM=B>A?@CDEFGHIJKLM;<456789:123 (c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeXX toysolverdGiven a problem and an option, it computes maximal interesting sets and minimal uninteresting sets.Y toysolver(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, Y 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.Z toysolverBCompute 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.Y toysolverSet of variables V toysolverA monotone boolean function f from {0,1}^|V| "E P(V) to Bool toysolverSubset C' of prime implicates C of f toysolverSubset D' of prime implicants D of fZ toysolverSet of variables V toysolverA monotone boolean function f from {0,1}^|V| "E P(V) to Bool toysolverSubset C' of prime implicates C of f toysolverSubset D' of prime implicants D of f"123456789:;<=B>A?@CDEFGHIJKLMXYZ[\XYZ[\ (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableSafe=?@ACHXu] toysolverdGiven a problem and an option, it computes maximal interesting sets and minimal uninteresting sets.^ toysolverBCompute 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.^ toysolverSet of variables V toysolverA monotone boolean function f from {0,1}^|V| "E P(V) to Bool toysolverSubset C' of prime implicates C of f toysolverSubset D' of prime implicants D of f123456789:;<=B>A?@CDEFGHIJKLM]^]^ (c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeXx_`a`_a (c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneXobcdcbd(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneXnefgheghf(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (ScopedTypeVariables, BangPatterns, FlexibleContexts)None>X.j toysolverGMaximize _{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.k toysolverEMinimize _{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.l toysolver(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.j toysolverweights [w1, w2 .. wn] toysolver capacity c toysolver(the objective value _{i=1}^n wi xi, andthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).k toysolverweights [w1, w2 .. wn] toysolver l toysolver(the objective value _{i=1}^n wi xi, andthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).l toysolverweights [w1, w2 .. wn] toysolver l toysolverthe assignment [x1, x2 .. xn], identifying 0 (resp. 1) with False (resp. True).ijkliljk(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com experimental non-portableSafe>HV/mnopqrstuvwxyz{|}~~|}z{wxyuvstqropmn(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com experimentalportableSafe1Safe4 S toysolverGiven a set S and a family of sets U, find a T"S such that S")T has maximum cardinality. In case of tie, smaller T is preferred. T U V W X Y Z SSafe4 [!(c) Masahiro Sakai 2013-2014,2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portable (OverloadedStrings)Safe6(c) Masahiro Sakai 2013,2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portable (OverloadedStrings)Safe8(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com experimentalportableSafe:D(c) Masahiro Sakai 2012-2015 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)Safe@A= toysolver3types that can be combined with boolean operations. toysolvertypes that can be negated.1132(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe@AAz toysolverDisjunctive normal form toysolverlist of conjunction of literals(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)Safe@ACH$ toysolverFEvaluataion of something (e.g. expression or formula) under the model. toysolverA Model# is a map from variables to values. toysolvercollecting free variables toysolverMap from variables toysolverSet of variables toysolver2Variables are represented as non-negative integers(c) Masahiro Sakai 2011-2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe@AKk toysolverformulas of first order logic toysolver+convert a formula into negation normal form (c) Masahiro Sakai 2014-2015 BSD-stylemasahiro.sakai@gmail.com provisional]non-portable (MultiParamTypeClasses, DeriveDataTypeable, FlexibleContexts, FlexibleInstances)None2=>?@AO toysolver-Boolean expression over a given type of atoms (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeW toysolver&Lifted Bool type. It has three values , ,  . toysolverlifted true value toysolverlifted false value  toysolverundefined truth value  toysolver F lnot lTrue == lFalse lnot lFalse == lTrue lnot lUndef == lUndef   toysolver 4 liftBool True == lTrue liftBool False == lFalse   toysolver a unliftBool lTrue == Just True unliftBool lFalse == Just False unliftBool lUndef == Nothing         (c) Masahiro Sakai 2011-2019 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonef toysolver,MIP status with the following partial order: !doc-images/MIP-Status-diagram.png  toysolver&SOS (special ordered sets) constraints% toysolver/types of SOS (special ordered sets) constraints& toysolverType 1 SOS constraint' toysolverType 2 SOS constraint( toysolverrelational operators, toysolver constraint4 toysolverobjective function9 toysolverterms; toysolver expressions= toysolver4type for representing lower/upper bound of variables> toysolver4type for representing lower/upper bound of variablesD toysolvervariableE toysolverlabelF toysolverProblemO toysolver convert a string into a variableP toysolver convert a variable into a stringQ toysolver looking up bounds for a variableR toysolverdefault boundsS toysolverdefault lower bound (0)T toysolverdefault upper bound (+")U toysolver looking up bounds for a variableZ !"#$%&'(*)+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aZFGHIJKLMNEDOP?@ABCQ>=RSTU^_`a;<WXY9:45678,-./0123Z[\(*)+%&' !"#$]VZ4[4\4(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonek4(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone ,>HVXpQ toysolverwParse a string containing MPS file data. The source name is only | used in error messages and may be the empty string. toysolver&Parse a file containing MPS file data. toysolverMPS file parserNone@ACr toysolvertime limit in seconds toysolver#invoked when a solver output a line toysolver-invoked when a solver output a line to stderr  (c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalenon-portable (FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, UndecidableInstances)Safe=?@AC}$ toysolverAtomic formula toysolver.type class for constructing relational formula toysolver.type class for constructing relational formula toysolverrelational operators toysolverflipping relational operatorrel (flipOp op) a b is equivalent to  rel op b a toysolvernegating relational operatorrel (negOp op) a b is equivalent to notB (rel op a b) toysolveroperator symbol toysolver0evaluate an operator into a comparision function444444(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional[non-portable (TypeFamilies, TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses)Safe=?@AHVX toysolver$Atomic Formula of Linear Arithmetics toysolvernLinear combination of variables and constants. Non-negative keys are used for variables's coefficients. key  is used for constants. toysolver(a mapping from variables to coefficients toysolver Create a Expr/ from a mapping from variables to coefficients. toysolver"terms contained in the expression. toysolver Create a Expr from a list of terms. toysolver6Special variable that should always be evaluated to 1. toysolvervariable toysolverconstant toysolvermap coefficients. toysolvermap coefficients. toysolver(evaluate the expression under the model. toysolver(evaluate the expression under the model. toysolverapplySubst1 x e e1 == e1[e/x] toysolver'lookup a coefficient of the variable. $ coeff v e == fst (extract v e)  toysolver2lookup a coefficient of the variable. It returns Nothing$ if the expression does not contain v. 4 lookupCoeff v e == fmap fst (extractMaybe v e)  toysolver extract v e returns (c, e') such that e == c *^ v ^+^ e' toysolverextractMaybe v e returns  Just (c, e') such that e == c *^ v ^+^ e' if e contains v, and returns Nothing otherwise. toysolver%evaluate the formula under the model. toysolverapplySubst1 x e phi == phi[e/x] toysolver1Solve linear (in)equation for the given variable. solveFor a v returns  Just (op, e) such that  Atom v op e is equivalent to a. toysolvercompute bounds for a Expr with respect to  BoundsEnv.7 (c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneX toysolverNon-basic variables toysolverBasic variables toysolverLookup a row by basic variable           (c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses)Safe=?@A toysolver"results of satisfiability checking toysolverAtomic formula toysolverArithmetic expressions toysolversingle variable expression toysolver evaluate an  with respect to a @  !Safe./01./01"(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalNone>@AHV)e23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NRxyz{|}]^_`abcdefghijklmnopqrstNOPQIJKLMEFGH56789:;<=>?@ABCDuvw34STUVWXYZ[\2~#(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone(  toysolverQuantifier-free formula of LRA toysolver M  returns whether  M "_LRA  or not. toysolver x  returns  (, lift) such that:"_LRA "y1, &, yn. ("x. ) !  where {y1, &, yn} = FV() \ {x}, andif  M "_LRA  then  lift M " . toysolver {x1, &,xm}  returns  (, lift) such that:%"_LRA "y1, &, yn. ("x1, &, xm. ) !  where {y1, &, yn} = FV() \ {x1, &,xm}, andif  M "_LRA  then lift M "_LRA . toysolver 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 . \ toysolver 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} toysolver {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 . toysolver {x1, &,xn}  returns Just M such that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}. toysolver {x1, &,xn}  returns Just M such that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.  $(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalMnon-portable (TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses)Safe=?@AZ  toysolverAtomic constraint toysolvere "e 0 toysolvere > 0 toysolvere = 0 toysolver'(t,c) represents t/c, and c must be >0. toysolverSimplify conjunction of s. It returns  ]" when a inconsistency is detected. toysolver 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 . toysolver {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 . toysolver {x1, &,xn}  returns Just M that  M "_LRA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}.%(c) Masahiro Sakai 2014-2015 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone; toysolveroptimize 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.&Safe toysolver {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. toysolverEEliminate 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 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafeo  '(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (MultiParamTypeClasses, FlexibleInstances)None=?@A toysolver1Quantifier-free formula of Presburger arithmetic. toysolver"Literals of Presburger arithmetic. toysolverIsPos e means e > 0 toysolverDivisible 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)) ` toysolver'(t,c) represents t/c, and c must be >0. toysolver+Linear arithmetic expression over integers. toysolverd | e means e can be divided by d. toysolver M  returns whether  M "_LIA  or not. toysolver x  returns  (, lift) such that:"_LIA "y1, &, yn. ("x. ) !  where {y1, &, yn} = FV() \ {x}, andif  M "_LIA  then lift M "_LIA . toysolver {x1, &,xm}  returns  (, lift) such that:%"_LIA "y1, &, yn. ("x1, &, xm. ) !  where {y1, &, yn} = FV() \ {x1, &,xm}, andif  M "_LIA  then lift M "_LIA . toysolver 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 . toysolver {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 . toysolver {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}. toysolver {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}. toysolver {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-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone + toysolverEEliminate 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. toysolver  {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.(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional non-portable (FlexibleInstances)None (c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies, BangPatterns, DeriveDataTypeable, CPP)None2=?@ACHVXAf1 toysolverMonic monomials toysolver Variable "x" toysolver.Univariate polynomials over commutative ring r toysolver'Options for pretty printing polynomials%The default value can be obtained by . toysolver(Square-free factorization of polynomials toysolverfactor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..]. toysolver"Prime factorization of polynomials toysolverfactor a polynomial p into p1 ^ n1 * p2 ^ n2 * .. and return a list [(p1,n1), (p2,n2), ..]. toysolverContent of a polynomial  toysolverPrimitive part of a polynomial toysolver"Polynomial over commutative ring r toysolver"total degree of a given polynomial  toysolver&construct a polynomial from a constant  toysolver+construct a polynomial from a list of terms  toysolver*construct a polynomial from a singlet term toysolver list of terms toysolver3leading term with respect to a given monomial order toysolver:leading coefficient with respect to a given monomial order toysolver7leading monomial with respect to a given monomial order toysolverPLook up a coefficient for a given monomial. If no such term exists, it returns 0. toysolverPLook up a coefficient for a given monomial. If no such term exists, it returns Nothing. toysolverYa polynomial is called primitive if the greatest common divisor of its coefficients is 1. toysolver Formal derivative of polynomials toysolverFormal integral of polynomials toysolver Evaluation toysolverSubstitution or bind toysolver"Transform polynomial coefficients. toysolverXTransform a polynomial into a monic polynomial with respect to the given monomial order. toysolverConvert  K[x,x1,x2, &] into  K[x1,x2, &][x]. toysolverMultivariate 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. toysolverMultivariate division algorithm )reduce cmp f gs = snd (divModMP cmp f gs) toysolver&Eisenstein's irreducibility criterion.-Given a polynomial with integer coefficients P[x] = an x^n + .. + a1*x + a0J, it is irreducible over rational numbers if there exists a prime number p& satisfying the following conditions:p divides ai for i /= n,p does not divides an, andp^2 does not divides a0.  toysolverNatural ordering x^0 < x^1 < x^2 ..: is the unique monomial order for univariate polynomials.! toysolver"division of univariate polynomials" toysolver"division of univariate polynomials# toysolver"division of univariate polynomials% toysolverGCD of univariate polynomials& toysolverLCM of univariate polynomials' toysolverExtended GCD algorithm( toysolverpseudo division) toysolverpseudo quotient* toysolverpseudo reminder+ toysolverGCD of univariate polynomials, toysolver'Is the number a root of the polynomial?- toysolverIs the polynomial square free?B toysolverLexicographic orderC toysolverReverse lexicographic order.Note that revlex is NOT a monomial order.D toysolverGraded lexicographic orderE toysolver"Graded reverse lexicographic order`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE!7"7*(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneXE@FGHFGH(c) Masahiro Sakai 2013-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneFFF+(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalDnon-portable (BangPatterns, TypeSynonymInstances, FlexibleInstances)None=?JI toysolverUSquare-free decomposition of univariate polynomials over a field of characteristic 0.II,(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneXNN toysolver$sugar strategy (not implemented yet)O toysolver&Options for Grbner Basis computation.&The default option can be obtained by . LMNOPQRSTU OPQLMNSTRU-(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalYnon-portable (ScopedTypeVariables, BangPatterns, TypeSynonymInstances, FlexibleInstances)None=?XUO` toysolverHSquare-free decomposition of univariate polynomials over a finite field.a toysolver1Berlekamp algorithm for polynomial factorization.8Input polynomial is assumed to be monic and square-free._`ab_`ab.(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional<non-portable (BangPatterns, ScopedTypeVariables, Rank2Types)NoneSXX a toysolverf|^2efef/(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisional6non-portable (TypeSynonymInstances, FlexibleInstances)None=?Zk0None=?Z)(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone\,`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE`     !"#$%&'()*+,- ./0123456789:;<=>?@ABCDE1(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonemQi toysolver Sturm's chain (Sturm's sequence)j toysolver Sturm's sequence of a polynomialk toysolver%The number of distinct real roots of p in a given intervall toysolver%The number of distinct real roots of p+ in a given interval. This function takes p's sturm chain instead of p itself. b toysolverKClosed interval that contains all real roots of a given polynomial. h90nPuL =http://aozoragakuen.sakura.ne.jp/taiwa/taiwaNch02/node26.htmlm toysolverYDisjoint intervals each of which contains exactly one real roots of the given polynoimal p,. The intervals can be further narrowed by q or r.n toysolverYDisjoint intervals each of which contains exactly one real roots of the given polynoimal p,. The intervals can be further narrowed by q or r. This function takes p's sturm chain instead of p itself. ijklmnopqrst ijklmnopqrst(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneo c d e2(c) Masahiro Sakai 2012-2016 BSD-stylemasahiro.sakai@gmail.com provisional.non-portable (Rank2Types, ScopedTypeVariables)NoneSXw| toysolverSGiven a polynomial P = _i a_i x^i over L/K where each a_i is a root of polynomial f a_i over K, rootSimpPoly f PO computes a polynomial Q over K such that roots of P is a subset of roots of Q. toysolverGiven a polynomial P and polynomials {P1, &,Pn} over K, findPoly P [P1..Pn] computes a non-zero polynomial Q such that Q[P] = 0 modulo {P1, &,Pn}. uvwxyz{|}~ uvwxyz{|}~3(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (Rank2Types)NoneSXP toysolverAlgebraic real numbers. toysolver0Real roots of the polynomial in ascending order. toysolver0Real roots of the polynomial in ascending order. toysolver-Returns approximate rational value such that %abs (a - approx a epsilon) <= epsilon. toysolver'Returns approximate interval such that +width (approxInterval a epsilon) <= epsilon. f toysolverSame as  g. h toysolverSame as  i. j toysolverSame as  k. l toysolverSame as  m. n toysolverSame as  o. toysolverThe n th root of a toysolver9Same algebraic real, but represented using finer grained . toysolver5The polynomial of which the algebraic number is root. toysolver@Isolating interval that separate the number from other roots of  of it. toysolver+Whether the algebraic number is a rational. toysolverkWhether the algebraic number is a root of a polynomial with integer coefficients with leading coefficient 1 (a monic polynomial). toysolverHeight 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. toysolverroot index, satisfying  ( a) !! rootIndex a == a  toysolver Golden ratio  toysolverDegree of the algebraic number.If the algebraic number's  has degree n2, then the algebraic number is said to be degree n. toysolvera toysolverepsilon toysolvera toysolverepsilon4(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)NoneX5(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneC toysolver&Complex numbers are an algebraic type.For a complex number z,  p z# is a number with the magnitude of z8, but oriented in the positive real direction, whereas  q z has the phase of z, but unit magnitude. toysolver+Extracts the real part of a complex number. toysolver0Extracts the imaginary part of a complex number. toysolver"The conjugate of a complex number. toysolver.The nonnegative magnitude of a complex number. toysolver5The polynomial of which the algebraic number is root. r toysolverRoots of the polynomial66None7(c) Masahiro Sakai 2016-2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableSafe2C toysolver7 represents a parse error and it wraps a error message. toysolver(A type class that abstracts file formats toysolverLParse a lazy byte string, and either returns error message or a parsed value toysolverEncode a value into  s toysolver=Parse a file but returns an error message when parsing fails. toysolverParse a file. Similar to  but this function throws  when parsing fails. toysolverWrite a value into a file.8(c) Masahiro Sakai 2016-2017 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneEXm" toysolverAOperations for folding edge information along with a path into a r value.Fold vertex cost label r consists of three operations vertex -> a corresponds to an empty path,Edge vertex cost label -> a corresponds to a single edge, a -> a -> a# corresponds to path concatenation,and a -> r to finish the computation. t toysolverStrict pair type toysolverpath data type. toysolver empty path toysolverpath with single edge toysolverconcatenation of two paths toysolver3Incoming edge data type (target vertex is implicit) toysolver3Outgoing edge data type (source vertex is implicit) toysolverEdge data type toysolver@Graph represented as a map from vertexes to their outgoing edges toysolver Source vertex toysolver Target vertex toysolverCost of a path toysolver Empty path toysolverConcatenation of two paths toysolverEdges of a path toysolver)Edges of a path, but in the reverse order toysolverEdges of a path, but as  u toysolverVertexes of a path toysolver,Vertexes of a path, but in the reverse order toysolverVertex of a path, but as  u toysolverFold a path using a given  operation. toysolverProject 7 into a monoid value and fold using monoidal operation. toysolver Similar to  but a label$ is directly used as a monoid value. toysolver(Ignore contents and return a unit value. toysolver Pairs two  into one that produce a tuple. toysolver Construct a  value. toysolverCompute cost of a path. toysolverGet the first  of a path. toysolver Get the last / of a path. This is useful for constructing a parent map of a spanning tree. toysolverBellman-Ford algorithm for finding shortest paths from source vertexes to all of the other vertices in a weighted graph with negative weight edges allowed.uIt compute shortest-paths from given source vertexes, and folds edge information along shortest paths using a given  operation. toysolver0Utility function for detecting a negative cycle. toysolverDijkstra's algorithm for finding shortest paths from source vertexes to all of the other vertices in a weighted graph with non-negative edge weight.uIt compute shortest-paths from given source vertexes, and folds edge information along shortest paths using a given  operation. toysolverFloyd-Warshall algorithm for finding shortest paths in a weighted graph with positive or negative edge weights (but with no negative cycles).xIt compute shortest-paths between each pair of vertexes, and folds edge information along shortest paths using a given  operation. toysolver$Operation used to fold shotest paths toysolverList of source vertexes vs toysolverOperation used to fold a cycle toysolver Result of   vs toysolver$Operation used to fold shotest paths toysolverList of source vertexes toysolver$Operation used to fold shotest paths##9(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalportableNoneك toysolver a :- b :<= k represents  a - b "d k toysolverDifference of two variables toysolver5Takes labeled list of constraints, and returns either7unsatisfiable set of constraints as a set of labels, orsatisfying assignment.46:(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (FlexibleContexts)None>ۜ(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional7non-portable (FlexibleInstances, MultiParamTypeClasses)None=?@A   ;(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalBnon-portable (BangPatterns, FlexibleContexts, ScopedTypeVariables)None>X  toysolver%Get the internal representation array toysolver%Get the internal representation array toysolver%Get the internal representation array toysolver!Pre-allocate internal buffer for n elements.          <(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalZnon-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, ScopedTypeVariables)None=?@AX ! toysolver6Priority queue implemented as array-based binary heap.# toysolver7Build a priority queue with default ordering ('(<)' of  v class)$ toysolver$Build a priority queue with a given  less than operator.% toysolverCReturn a list of all the elements of a priority queue. (not sorted)& toysolver*Remove all elements from a priority queue.' toysolver"Create a copy of a priority queue.) toysolver:Get the internal representation of a given priority queue.* toysolver:Get the internal representation of a given priority queue.+ toysolver!Pre-allocate internal buffer for n elements. !"#$%&'()*+!"#$ %&' ()*+=(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional[non-portable (MultiParamTypeClasses, FlexibleInstances, BangPatterns, TypeSynonymInstances)None=?@AF 0 toysolver6Priority queue implemented as array-based binary heap.3 toysolver7Build a priority queue with default ordering ('(<)' of  v class)4 toysolver$Build a priority queue with a given  less than operator. w toysolver$Build a priority queue with a given  less than operator.5 toysolverCReturn a list of all the elements of a priority queue. (not sorted)6 toysolver*Remove all elements from a priority queue.7 toysolver"Create a copy of a priority queue.; toysolver:Get the internal representation of a given priority queue.< toysolver:Get the internal representation of a given priority queue.= toysolver!Pre-allocate internal buffer for n elements.> toysolver!Pre-allocate internal buffer for [0..n-1] values. 0123456789:;<=>01234 567 89:;<=>>(c) Masahiro Sakai 2012, 2015 BSD-stylemasahiro.sakai@gmail.com provisionalCnon-portable (BangPatterns, ScopedTypeVariables, FlexibleInstances)None=?X x toysolver 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. y toysolverEqn1 cid a b c$ represents an equation "f(a,b) = c" z toysolver Eqn0 cid a b represents an equation "a = b")CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk)MUTRSOPQNVKLWXYZ[\]^_`aJICDEFGHbcdefgjkih?(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.comunstablenon-portable (CPP)None $CDEFGHIJKLNRSTcd~$~TRSNKLJICDEFGHcd@(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (CPP)Safe toysolver Filename of the executable (see  { for details) toysolver any arguments toysolverstandard input toysolverAcallback function which is called when a line is read from stdout toysolverAcallback function which is called when a line is read from stderrANone@A"B(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable)Safe2< toysolverOptions for solving.&The default option can be obtained by .  C(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisional!non-portable (DeriveDataTypeable)Safe2~ toysolverOptions for solving.&The default option can be obtained by .  D(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)Safe: toysolver | 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.E(c) Masahiro Sakai 2011-2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe"  toysolverCombining two Maybe values using given function. toysolveris the number integral? , isInteger x = fromInteger (round x) == x  toysolverfractional part ) fracPart x = x - fromInteger (floor x)  F(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)None$!G(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone ,>HVX) toysolvervParse a string containing LP file data. The source name is only | used in error messages and may be the empty string. toysolver%Parse a file containing LP file data. toysolverLP file parser toysolverRender a problem into a string.H(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone/ toysolver.Parse .lp or .mps file based on file extension toysolver%Parse a file containing LP file data. toysolver&Parse a file containing MPS file data. toysolver'Parse a string containing LP file data. toysolver(Parse a string containing MPS file data.e !"#$%&'(*)+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a INone1JNone@A2)KNone2  LNone@A3MNone3sNNone@A3ONone>4WPNone@A4QNone53RNone@A5None6!S(c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (TypeFamilies)SafeHVBT  toysolver Delta r k: represents r + k for symbolic infinitesimal parameter . toysolver#symbolic infinitesimal parameter . toysolverConversion from a base r value to Delta r. toysolverExtracts the real part.. toysolverExtracts the  part.. toysolver version of  o.  x/ returns the greatest integer not greater than x toysolver version of  m.  x) returns the least integer not less than x toysolverIs this a integer? toysolverNThis is unsafe instance in the sense that only a proper real can be a divisor. toysolverXThis instance assumes the symbolic infinitesimal parameter  is a nilpotent with  = 0.  T!(c) Masahiro Sakai 2012-2014,2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portable (OverloadedStrings)NoneE toysolverTranslation options.&The default option can be obtained by .U(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalynon-portable (ScopedTypeVariables, Rank2Types, TypeOperators, TypeSynonymInstances, FlexibleInstances, TypeFamilies, CPP)None =?HSUVXP* toysolverOptions for solving.&The default option can be obtained by .- toysolverresults of optimization ~ toysolver=A natural transformation suitable for storing in a container.  toysolverA natural transformation from f to g.  toysolver0feasibility 0O0a0d0d non-basic variable xj 0nP$0Y'0M0O0Y0  toysolver0feasibility 0O0a0d0d non-basic variable xj 0nP$0\0U0O0Y0p toysolver-set callback function for receiving messages.]()*+,-/0.123456789:;<=?>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstj@AB<=?>DECP;:QRSTVWXYZ[\]cNO*+,-/0.1de(?)flghkmno^_`abij9FGpqrs5678HIJ234KLMtU ~0 0 0V(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneT (-/0.1 (-/0.1W(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalMnon-portable (TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses)Safe=?@Ac  toysolver'(t,c) represents t/c, and c must be >0.  toysolverAtomic constraint  toysolvere "e 0  toysolvere = 0 toysolverOptions for solving.&The default option can be obtained by . toysolverEoptCheckReal 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 toysolver opt {x1, &,xn}  returns Just M that  M "_LIA  when such M exists, returns Nothing otherwise.FV() must be a subset of  {x1, &,xn}. toysolver {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}.  X(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonee  Y(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional.non-portable (ScopedTypeVariables, Rank2Types)NoneSXh toysolver-set callback function for receiving messages.  Z(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional0non-portable (ScopedTypeVariables, BangPatterns)SafeXoc toysolver5tightening variable bounds by constraint propagation.  toysolverGtightening intervals by ceiling lower bounds and flooring upper bounds. toysolverinitial bounds toysolver constraints toysolverintegral variables toysolverlimit of iterations[(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneXx toysolverresults of optimization toysolverAllocate a new  non-negative variable. toysolvereAdd 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. toysolverFAdd a contraint, without maintaining feasibilty condition of tableaus.Disequality is not supported.Unlike *, an equality constraint becomes two rows.\(c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneX{ toysolverresults of optimization](c) Masahiro Sakai 2011 BSD-stylemasahiro.sakai@gmail.com provisional"non-portable (ScopedTypeVariables)NoneX} ^Safe~c_(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone`(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone toysolver4Number of nodes N. Nodes are numbered from 0 to N-1. toysolverNumber of edges. toysolver+Non-zero entries of symmetric weight matrix  a(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone=?  toysolver Ising model. Minimize :\sum_{i<j} J_{i,j} \sigma_i \sigma_j + \sum_i h_i \sigma_i where \sigma_i \in \{-1,+1\} for i \in \{0 \ldots N-1\}.In the $ type. -1 and +1 are represented as False and True respectively. toysolver<Number of variables N. Variables are numbered from 0 to N-1. toysolver Interaction J_{i,j} with i < j. toysolverExternal magnetic field h_j. toysolver<QUBO (quadratic unconstrained boolean optimization) problem. Minimize \sum_{i\le j} Q_{i,j} x_i x_j where x_i \in \{0,1\} for i \in \{0 \ldots N-1\}.In the " type. 0 and 1 are represented as False and True respectively. toysolver<Number of variables N. Variables are numbered from 0 to N-1. toysolverUpper triangular matrix Q  bSafeI toysolver1Pseudo boolean constraint handler implimentation.%The default value can be obtained by . toysolverBranching strategy.%The default value can be obtained by . and  is based on [Liang et al 2016].J. Liang, V. Ganesh, P. Poupart, and K. Czarnecki, "Learning rate based branching heuristic for SAT solvers," in Proceedings of Theory and Applications of Satisfiability Testing (SAT 2016), pp. 123-140.  <http://link.springer.com/chapter/10.1007/978-3-319-40970-2_9 \https://cs.uwaterloo.ca/~ppoupart/publications/sat/learning-rate-branching-heuristic-SAT.pdf toysolverCVSIDS (Variable State Independent Decaying Sum) branching heuristic toysolver?ERWA (Exponential Recency Weighted Average) branching heuristic toysolver'LRB (Learning Rate Branching) heuristic toysolverLearning strategy.%The default value can be obtained by . toysolverRestart strategy.%The default value can be obtained by . toysolver_The initial restart limit. (default 100) Zero and negative values are used to disable restart.  toysolvercThe factor with which the restart limit is multiplied in each restart. (default 1.5) This must be >1.  toysolvernThe initial limit for learnt constraints. Negative value means computing default value from problem instance.  toysolverjThe limit for learnt constraints is multiplied with this factor periodically. (default 1.1) This must be >1.   toysolverHControls conflict constraint minimization (0=none, 1=local, 2=recursive) toysolver]step-size  in ERWA and LRB branching heuristic is initialized with this value. (default 0.4) toysolvernstep-size  in ERWA and LRB branching heuristic is decreased by this value after each conflict. (default 0.06) toysolverestep-size  in ERWA and LRB branching heuristic is decreased until it reach the value. (default 0.06) toysolver\inverse of the variable EMA decay factor used by LRB branching heuristic. (default 1 / 0.95) toysolverQThe frequency with which the decision heuristic tries to choose a random variable toysolver6Split 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. toysolverAInverse of the variable activity decay factor. (default 1 / 0.95) toysolver<Inverse of the constraint activity decay factor. (1 / 0.999)-      !"#-      !"#cNone=?@ACX#A toysolverAdd a parity constraint l1 " l2 " & " ln = rhsB toysolverAdd a soft parity constraint sel ! l1 " l2 " & " ln = rhsD toysolver,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & "e n.E toysolver,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & "e n.F toysolver,Add a non-linear pseudo boolean constraints c1*ls1 + c2*ls2 + & = n.G toysolver1Add a soft non-linear pseudo boolean constraints sel ! c1*ls1 + c2*ls2 + & "e n.H toysolver1Add a soft non-linear pseudo boolean constraints sel ! c1*ls1 + c2*ls2 + & "d n.I toysolver1Add a soft non-linear pseudo boolean constraints lit ! c1*ls1 + c2*ls2 + & = n.K toysolver!Add a pseudo boolean constraints c1*l1 + c2*l2 + & "e n.L toysolver!Add a pseudo boolean constraints c1*l1 + c2*l2 + & "d n.M toysolver!Add a pseudo boolean constraints c1*l1 + c2*l2 + & = n.N toysolver&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & "e n.O toysolver&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & "d n.P toysolver&Add a soft pseudo boolean constraints sel ! c1*l1 + c2*l2 + & = n.R toysolverAdd a cardinality constraints atleast({l1,l2,..},n). S toysolverAdd a cardinality constraints atmost({l1,l2,..},n).T toysolverAdd a cardinality constraints exactly({l1,l2,..},n).X toysolverAdd a new variableY toysolverAdd variables. %newVars a n = replicateM n (newVar a), but maybe faster.Z toysolverAdd variables. 'newVars_ a n = newVars a n >> return (), but maybe faster.[ toysolver 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)e toysolverDisjunction of h.h toysolverkPositive (resp. negative) literals are represented as positive (resp. negative) integers. (DIMACS format).i toysolverAA model is represented as a mapping from variables to its values.n toysolver=Variable is represented as positive integers (DIMACS format).p toysolverRestrict model to first nv variables.s toysolver7Construct a literal from a variable and its polarity.   (resp  *) means positive (resp. negative) literal.t toysolverNegation of the h.u toysolverUnderlying variable of the hv toysolverPolarity of the h.   means positive literal and   means negative literal.x toysolverNormalizing clause ]! if the clause is trivially true. toysolver 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. toysolver&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn >= b. toysolver&normalizing PB constraint of the form c1 x1 + c2 cn ... cn xn = b. toysolverNormalize XOR clauseA toysolver literals [l1, l2, &, ln] toysolverrhsB toysolverSelector literal sel toysolver literals [l1, l2, &, ln] toysolverrhsD toysolverList of terms [(c1,ls1),(c2,ls2), &] toysolvernE toysolverList of terms [(c1,ls1),(c2,ls2), &] toysolvernF toysolverList of terms [(c1,ls1),(c2,ls2), &] toysolvernG toysolverSelector literal sel toysolverList of terms [(c1,ls1),(c2,ls2), &] toysolvernH toysolverSelector literal sel toysolverList of terms [(c1,ls1),(c2,ls2), &] toysolvernI toysolverSelector literal sel toysolverList of terms [(c1,ls1),(c2,ls2), &] toysolvernK toysolverlist of terms [(c1,l1),(c2,l2), &] toysolvernL toysolverlist of [(c1,l1),(c2,l2), &] toysolvernM toysolverlist of terms [(c1,l1),(c2,l2), &] toysolvernN toysolverSelector literal sel toysolverlist of terms [(c1,l1),(c2,l2), &] toysolvernO toysolverSelector literal sel toysolverlist of terms [(c1,l1),(c2,l2), &] toysolvernP toysolverSelector literal sel toysolverlist of terms [(c1,l1),(c2,l2), &] toysolvernR toysolverset of literals  {l1,l2,..}" (duplicated elements are ignored) toysolvernS toysolverset of literals  {l1,l2,..}" (duplicated elements are ignored) toysolvernT toysolverset of literals  {l1,l2,..}" (duplicated elements are ignored) toysolverns toysolvervariable toysolverpolarityZ@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Znmlojkiphgfqrstuvwexyz{|d}~cba`_^]\[WXYZUVQRSTJKLMNOPCDEFGHI@ABdNone  e(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalInon-portable (FlexibleContexts, FlexibleInstances, MultiParamTypeClasses)None=>?@Ajf(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone toysolverPrint a i. in a way specified for SAT Competition. See  ,http://www.satcompetition.org/2011/rules.pdf for details. toysolverPrint a i1 in a way specified for Max-SAT Evaluation. See  &http://maxsat.ia.udl.cat/requirements/ for details. toysolverPrint a i9 in a way specified for Pseudo-Boolean Competition. See  .http://www.cril.univ-artois.fr/PB12/format.pdf for details.gNone ]h(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional>non-portable (ScopedTypeVariables, BangPatterns, TypeFamilies)NoneHVXv toysolver#number of variables of the problem. toysolver%number of constraints of the problem.  toysolver#number of edges of the factor graph toysolver3Get the marginal probability of the variable to be True, False and unspecified respectively. 8i(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone  toysolver!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 . toysolverSatisfiable Subset (SS).IA subset S " C is a SS if S is satisfiable. A SS is the complement of a . toysolver/Minimal Correction Subset of constraints (MCS).A subset M " C is an MCS if C\M is satisfiable and "C_i " M, C\(M\{C_i}) is unsatisfiable [CAMUS]. A MCS is the complement of an  and also known as a CoMSS. toysolver&Correction Subset of constraints (CS).KA subset M " C is a CS if C\M is satisfiable. A CS is the complement of a . toysolver2Minimal 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].  toysolver)Unsatisfiable Subset of constraints (US)./A subset U " C is an US if U is unsatisfiable. j(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalgnon-portable (ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses, ExistentialQuantification)None=?@AEX?~ toysolverEncoder instance toysolver'Arbitrary formula not restricted to CNF toysolver Create a Encoder9 instance. If the encoder is built using this function,  has no effect. toysolver Create a Encoder9 instance. If the encoder is built using this function,  has an effect. toysolverUse pseudo boolean constraints or use only clausesB. This option has an effect only when the encoder is built using . toysolverKAssert a given formula to underlying SAT solver by using Tseitin encoding. toysolver=Return an literal which is equivalent to a given conjunction.  encodeConj encoder =  encoder   toysolvereReturn an literal which is equivalent to a given conjunction which occurs only in specified polarity. toysolver=Return an literal which is equivalent to a given disjunction.  encodeDisj encoder =  encoder   toysolvereReturn an literal which is equivalent to a given disjunction which occurs only in specified polarity. toysolver>Return an literal which is equivalent to a given if-then-else.  encodeITE encoder =  encoder   toysolverfReturn an literal which is equivalent to a given if-then-else which occurs only in specified polarity. toysolverFReturn an literal which is equivalent to an XOR of given two literals.  encodeXOR encoder =  encoder   toysolvernReturn an literal which is equivalent to an XOR of given two literals which occurs only in specified polarity. toysolver$Return an "sum"-pin of a full-adder.  encodeFASum encoder =  encoder   toysolverLReturn an "sum"-pin of a full-adder which occurs only in specified polarity. toysolver&Return an "carry"-pin of a full-adder.  encodeFACarry encoder =  encoder   toysolverNReturn an "carry"-pin of a full-adder which occurs only in specified polarity.k(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisionaldnon-portable (ExistentialQuantification, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses)None=>?@AEXJ  toysolverEncode a non-linear \ into a lienar `.linearizePBSum enc s is equivalent to +linearizePBSumWithPolarity enc polarityBoth.  toysolverLinearize a non-linear \ into a lienar `. The input \0 is assumed to occur only in specified polarity.If polarityPosOccurs p, the value of resulting ` is  greater than or equal to the value of original \.If polarityNegOccurs p, the value of resulting ` is  lesser than or equal to the value of original \. IHGFED    DEFGHI  l(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone>XL  m(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone>XNn(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone>XPm  o(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalZnon-portable (BangPatterns, ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses)None=?@AXSd !#"$%&'() &!#"$%'()pNoneHVT456789:456789:q(c) Masahiro Sakai 2019 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneXUABABr(c) Masahiro Sakai 2019 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoneW@CDCDs(c) Masahiro Sakai 2019 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone=>?@AXEFGHIJKHEFGIJKt(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalVnon-portable (BangPatterns, ScopedTypeVariables, CPP, DeriveDataTypeable, RecursiveDo)None /2@AFNXw%  toysolverAinvoked with the watched literal when the literal is falsified. watch 0g  toConstraint+ 0T|0sQ0W0f heap allocation 0Lvzu0Y00n0 0Q00_00k0QC0n   0n!0W0f0J0O0  toysolverdeduce a clause C"(l from the constraint and return C. C and l should be false and true respectively under the current assignment.X toysolverSolver instance  toysolver"Amount to bump next variable with.  toysolver$Amount to bump next constraint with.  toysolverstep-size parameter   toysolver.will be invoked when this literal is falsified  toysolver2will be invoked once when the variable is assigned  toysolver#exponential moving average estimate  toysolverWhen v was last assigned  toysolverIThe number of learnt clauses v participated in generating since Assigned.  toysolverEThe number of learnt clauses v reasoned in generating since Assigned.[ toysolverDit returns a set of literals that are fixed without any assumptions.  toysolverFRegister the constraint to be notified when the literal becames false.  toysolverERegister the constraint to be notified when the variable is assigned.^ toysolver#number of variables of the problem.  toysolvernumber of assigned _ toysolvernumber of constraints.` toysolvernumber of learnt constrints.a toysolver Create a new X instance.b toysolver Create a new X% instance with a given configulation.c toysolver!Pre-allocate internal buffer for n variables.  toysolverSee documentation of setPBSplitClausePart.d toysolverSolve constraints. Returns  ) if the problem is SATISFIABLE. Returns  ! if the problem is UNSATISFIABLE.e toysolver-Solve constraints under assuptions. Returns  ) if the problem is SATISFIABLE. Returns  ! if the problem is UNSATISFIABLE.f toysolverCancel exectution of d or e.&This can be called from other threads.g toysolverAfter d3 returns True, it returns an satisfying assignment.h toysolverAfter e 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.i toysolverEXPERIMENTAL API: After e returns True or failed with VJ exception, it returns a set of literals that are implied by assumptions.  toysolverNSimplify the constraint database according to the current top-level assigment.m toysolver#The default polarity of a variable.n toysolver:Set random generator used by the random variable selectiono toysolver:Get random generator used by the random variable selection  toysolver?Revert to the state at given level (keeping all assignment at level but not beyond).  toysolver?invoked with the watched literal when the literal is falsified.  toysolverdeduce a clause C"(l from the constraint and return C. C and l should be false and true respectively under the current assignment.r toysolver-set callback function for receiving messages.e toysolver Assumptions{      !"#@ABJKLMNOPQRSTUVZYX[^_`abcdehijknstuvw{}~TUVWXYZ[\]^_`abcdefghijklmnopqrNXabnhstuvwXYZcUVe{d}~QRSTcbJKLMNOPa`_^@AB[qdeVWfTUjkighijklmrnop^_`YZ[]\u(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)NoneVv(c) Masahiro Sakai 2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonew(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone toysolverOptions for BCD2 algorithm.%The default value can be obtained by .  toysolver.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.  toysolver-The greatest integer lesser-than or equal-to n- that can be obtained by summing a subset of ws.  toysolver ws toysolver n  toysolver ws toysolver nx(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNoney(c) Masahiro Sakai 2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonez(c) Masahiro Sakai 2012-2013 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone toysolverOptimization method%The default value can be obtained by .!!None toysolver`MCS candidates (see HYCAM paper for details). A MCS candidate must be a superset of a real MCS. toysolverBecause each soft constraint C_i' is represented as a selector literal l_i! together with a hard constraint  l_i ! C_i1, there are cases that a model assigns false to l_i even though C_i^ itself is true. This function is used to inform the truth value of the original constraint C_i+ that corresponds to the selector literal l_i.(c) Masahiro Sakai 2012-2014 BSD-stylemasahiro.sakai@gmail.com provisionalportableNone (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalNone- toysolverOptions for MUS finding.%The default value can be obtained by . toysolverBecause each soft constraint C_i' is represented as a selector literal l_i! together with a hard constraint  l_i ! C_i1, there are cases that a model assigns false to l_i even though C_i^ itself is true. This function is used to inform the truth value of the original constraint C_i+ that corresponds to the selector literal l_i.(c) Masahiro Sakai 2015 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone  toysolverdFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from h. (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone?  toysolverdFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from h. (c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone  toysolverdFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from h. |(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneU toysolverdFind a minimal set of assumptions that causes a conflict. Initial set of assumptions is taken from h.}(c) Masahiro Sakai 2012, 2015 BSD-stylemasahiro.sakai@gmail.com provisionalunon-portable (TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables, MultiParamTypeClasses, OverloadedStrings)None=?@AXv  toysolverElement of model.  toysolver Shallow atom  toysolver Shallow term toysolverTerm toysolver3Generalized literal type parameterized by atom type toysolverPredicate Symbol toysolverFunction Symbol toysolverVariable toysolver.normalize a formula into a skolem normal form.TODO:Tseitin encoding toysolver print entity+   +   ~(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone=>?@ACXӎ* toysolverdGiven a problem and an option, it computes maximal interesting sets and minimal uninteresting sets.+ toysolverBCompute 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.+ toysolverSet of variables V toysolverA monotone boolean function f from {0,1}^|V| "E P(V) to Bool toysolverSubset C' of prime implicates C of f toysolverSubset D' of prime implicants D of f 123456789:;<=B>A?@CDEFGHIJKLM*+,*+,{(c) Masahiro Sakai 2012-2016 BSD-stylemasahiro.sakai@gmail.com provisional$non-portable (MultiParamTypeClasses)None@A-./-./(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalNone>X/ 123456789: 123456789:Noneصo23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~123456789:(c) Masahiro Sakai 2016-2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneC toysolver Synonym of nD toysolverQuantified set of variablesE toysolver QuantifierF toysolverexistential quantifier (")G toysolveruniversal quantifier (")H toysolverQDIMACS format_Quantified boolean expression in prenex normal form, consisting of a sequence of quantifiers (L#) and a quantifier-free CNF part (M). References:QDIMACS standard Ver. 1.1 "http://www.qbflib.org/qdimacs.htmlJ toysolverNumber of variablesK toysolverNumber of clausesL toysolverSequence of quantifiersM toysolverClausesN toysolver%Clause together with component numberO toysolverComponent number between 0 and TP toysolverGroup oriented CNF Input FormatLThis format is used in Group oriented MUS track of the SAT Competition 2011. References: ,http://www.satcompetition.org/2011/rules.pdfR toysolverNubmer of variablesS toysolverNumber of clausesT toysolverQThe last index of a group in the file number of components contained in the file.V toysolverBWeigths must be greater than or equal to 1, and smaller than 2^63.W toysolverWeighted clausesX toysolver?WCNF format for representing partial weighted Max-SAT problems.0This format is used for for MAX-SAT evaluations. References: &http://maxsat.ia.udl.cat/requirements/Z toysolverNumber of variables[ toysolverNumber of (weighted) clauses\ toysolverHard clauses have weight equal or greater than "top". We assure that "top" is a weight always greater than the sum of the weights of violated soft clauses in the solution.] toysolverWeighted clauses^ toysolverDIMACS CNF format` toysolverNumber of variablesa toysolverNumber of clausesb toysolverClauses-deh}~CDEGFHIJKLMNOPQRSTUVWXYZ[\]^_`ab%^_`abXYZ[\]WVPQRSTUONHIJKLMEGFDChed}~(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimentalInon-portable (FlexibleContexts, FlexibleInstances, MultiParamTypeClasses)None=>?@A}~}~(c) Masahiro Sakai 2017 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone2X(c) Masahiro Sakai 2017 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone  toysolverGiven a set of variables X = \{x_1, \ldots, x_k\} and CNF formula \phi, this function duplicates X with X^+ = \{x^+_1,\ldots,x^+_k\} and X^- = \{x^-_1,\ldots,x^-_k\},replaces positive literals x_i with x^+_i, and negative literals \neg x_i with x^-_i, andadds constraints \neg x^+_i \vee \neg x^-_i. toysolverGiven a set of variables X = \{x_1, \ldots, x_k\} and CNF formula \phi1, this function computes shortest implicants of \phi in terms of X. Variables except X5 are treated as if they are existentially quantified.Resulting shortest implicants form a DNF (disjunctive normal form) formula that is equivalent to the original (existentially quantified) formula. toysolverGiven a set of variables X = \{x_1, \ldots, x_k\} and CNF formula \phi1, this function computes shortest implicants of \exists X. \phi.wResulting shortest implicants form a DNF (disjunctive normal form) formula that is equivalent to the original formula \exists X. \phi. toysolverGiven a CNF formula \phi,, this function returns another CNF formula \psi that is equivalent to \neg\phi. toysolverGiven a set of variables X = \{x_1, \ldots, x_k\} and CNF formula \phi(, this function computes a CNF formula \psi that is equivalent to \exists X. \phi (i.e. &(\exists X. \phi) \leftrightarrow \psi).  toysolverX toysolver\phi toysolverX toysolver\phi toysolverX toysolver\phi toysolver\phi toysolver\psi \equiv \neg\phi toysolverX toysolver\phi toysolver\psi(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalnon-portable (BangPatterns)Noneu toysolver"Naive Algorithm for a Winning Move toysolverBAbstraction-Based Algorithm for a Winning Move  toysolver.Abstraction-Based Algorithm for a Winning Move EGF EGF(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneT(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com experimental non-portableNoneHV(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portableNone>@AHV(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneHV (c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com experimental non-portableNone"!(c) Masahiro Sakai 2013,2016-2018 BSD-stylemasahiro.sakai@gmail.com experimental non-portableNoneHV+D toysolverGQuandratize PBO/PBS problem without introducing additional constraints. toysolverGQuandratize PBO/PBS problem without introducing additional constraints. toysolverZConvert inequality constraints into equality constraints by introducing surpass variables.  toysolveruConvert a pseudo boolean formula  to a equisatisfiable CNF formula  together with two functions f and g such that:if M "  then f(M) " if M "  then g(M) " 2mnopqrstuvwxyz{|}~           (c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneHVX.# # $ % & ' ( ) * + , - . / 0 , * + . ' - ( ) / % & 0 # $(c) Masahiro Sakai 2011-2015 BSD-stylemasahiro.sakai@gmail.com experimental non-portableNoneHV0B U V W X Y Z [ \ Y X Z W [ V \ U(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNone>HV6W l toysolverInformation of  t conversion m toysolverInformation of  s conversion s toysolverQConvert a CNF formula  to an equisatifiable NAE-SAT formula , together with a  m t toysolverQConvert a NAE-SAT formula  to an equisatifiable CNF formula , together with a  l h i j k l m n o p q r s t u v w p q o r m n s l t j k u i v h w(c) Masahiro Sakai 2018 BSD-stylemasahiro.sakai@gmail.com provisional non-portableNoneHV8v  (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental$non-portable (MultiParamTypeClasses)None@AHV:  (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com experimental non-portableNoneHVX^  toysolverThe primal variable vector x  toysolverThe primal variable matrix X  toysolverThe dual variable matrix Y  toysolver(the block strcuture vector (bLOCKsTRUCT)  toysolverConstant Vector  toysolverConstraint Matrices  toysolver%the number of primal variables (mDim)  toysolverthe number of blocks (nBLOCK) ' toysolverGParse a SDPA format file (.dat) or a SDPA sparse format file (.dat-s).. ) toysolver"Parse a SDPA format (.dat) string. * toysolver+Parse a SDPA sparse format (.dat-s) string.                 ! " # $ % & ' ( ) * + ,         !      " # ' (   % $ & + ,  ) *(c) Masahiro Sakai 2017 BSD-stylemasahiro.sakai@gmail.com exprimental non-portableNoneHVc 5 toysolverGiven a primal-dual pair (P), (D), it returns another primal-dual pair (P'), (D') such that (P) is equivalent to (D') and (D) is equivalent to (P'). 3 4 5 5 3 4(c) Masahiro Sakai 2012 BSD-stylemasahiro.sakai@gmail.com provisionalportableNonegX < toysolverBParse a WCNF file but returns an error message when parsing fails. = toysolver Encode a X to a  s > toysolver Output a X to a Handle. VWXYZ[\] < = > XYZ[\]WV < > =NoneXh Nonehm ? @ A ? @ ANoneh B C D C B D                                  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeffghijklmnopqrstuvwxyz{|}~yz{|}~pqt u     !"#$%&'()*+,-./0123456789:;<=>>?@ABCCDEFGHIJKLMNOPQRSTUVWXYZ[y\]^_`abcdefghijklmnopqrstuvwxyz{|}~     y   t    a e p u            !!!!"o"y"""""""""""""""""""""""""""t"t""""""""""""""""l"""""""""""""""""""""""""""""""e"p"""""""""""""""""""""""""""""""""### # # # # #$$$$$$$$$$$$$$$$$ $$ $$$$$ $!$"$#%$&%&&&'''('')'''*''+' ' ' ' ' '','-'.'/'0'1'2'3'4'5'6'7'8(&(%9:;<=>>?@ABCDEEFGHIJKLMNOPQR\STUqtab^]VWXYjkZ[\n]c^_`abcdefghijklmnopqrstuvwxyz{|}~***+++,,,,,,,,,,,,,,,,,,,-M-K----.M./01111111111112t222222222233333333333333333333333334o444444444444 4 44444444455555555555672727776747777888888888888888888888888888 8 8 8 8 8888888899999999999: :!:":#:$:%&'()*+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?;@;A;';B;C;D;E;F;G<H<,<I<J<B<'<C<K<L<M<N<O<P<Q<R=H= =,=I=J=B='=C=S=T=K=L=M=N=U=O=V=W=R>o>o>X>Y>Z>[>\>]>^>_>`>a>b>c>d>>e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>n>u>v>w>x>y>z>{>|>}>~>>>>>>>>>>>>>>>>?`?g?h?j?i???????q?t?v?w?x?{?|?z?y@AAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCDDEEEEEEEEEFMG3G4G5G6HHHHHHHHHHIIJJJJJJK6KKKLLLLLLMMNNNNNNOOPPPPPPQQRRRRRRSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTUoUUUUUUUUUUUUUUUUUUUaU U U UtU`U U UtUgUUUUUUUUUUvUwUUUUUUUUUU UJU!U"U#U$U%U&UUUU$UU'U(UqU)U*U+U,U-U.U/U0U1U2U3U4U5UU6U7U8U9U:U;U<U=U>U?U@UAUBUCUUUVV$WWWDWEWFWW,WGWWW W!W"W#XHXIXJY`YgY$YKYLYMYNYOY0YPZQ[[[[[R[`[S[[+[T[U[V[W[X[t[[[[Y[[Z[A[B[C\\[\\\\\]\\$\A\B\C]\]]]$]^]_]`]a]b^c^d__````e`f`g`h`i`j`k`n`l``'`(`&amamanaoapaaaaqaranasataa'a&auavbwbxbybzb{b|b}b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb5bbbbbbbbbbbbbbbbbbbbb>b?b@ccccccccccccccccccccccccccccccccccccccccc(cocccrcsctccccccccc+ccccccccccccccccccccccccccccccc c c c c ccdddddddddeeeeeeeef f!f"f#g$g%g&g'g(g)gKg*g+g,g-g.gMgLg/g0g1g2g3g4gPg5g0g6g7g8h`hgh9h:h;h<h=h>h?h@hAhBhChDhEhFhGhHiIiJiKiLiMiNjOjOjPjQjRjvjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjokRkTkpkqkrksktkuklkmlvlwlxlylzl{l|l}l~lllmmnnooooooRoTooootouolomooooopppppWppnppvpwpppyqqrrssssRsTsssuslsmsssssttttt`tttttt<t=ttgtttttttttttttttttt0ttttttttttttttttttttttttttttttuvwwwwwwwxyzzzzzzzzzzzzzzz$zzzzzzzzzPz5z0z,zKzMzLz)z/z0zzzzzz|||}o}o}X}}Y}\}]}}w}x}y}z}{}|}}}~}}}v}}(}y}}}}}}}}}f}t}}}}S}p}}+}}}}}}}}}}}} } } } } }}}}}}}}}}}}}}}}}}~ ~ ~{{{{`gtqvw !"#$y%&'())*+,-./001234 566789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abbcdefgh`gijKklmnopqrstuvw xyz{|}~      !"#$%&'()*+,-../00123456789:;<=>?@ABCDEFFGHIJKLMNOPQRRSTUVWXYZ[\\]^_`abcc defgo^h`ijklmnoopqrstff,uvwxyzg{|}~<>tn~x2&('0/.v#'.1  3   3   3   3  3    5    8      = > > >     2 ! "U #U $U %U &U 'WWWWZ (  ) *  ) +h ,h -t .t /t 0t 1t 2t 3t 4t 5t 6t 7t 8t 9t :t ;t <t =tt >tDt ?w @w A B C} D} E F G H I&toysolver-0.6.0-4GP1uokPmAh77wdHAzQGeoToySolver.Data.MIP.BaseToySolver.Data.MIP.Solver.Base ToySolver.Internal.Data.SeqQueueToySolver.Version)ToySolver.Combinatorial.BipartiteMatching7ToySolver.Combinatorial.HittingSet.FredmanKhachiyan1996'ToySolver.Combinatorial.HittingSet.Util)ToySolver.Combinatorial.HittingSet.Simple2ToySolver.Combinatorial.HittingSet.InterestingSets7ToySolver.Combinatorial.HittingSet.GurvichKhachiyan1999&ToySolver.Combinatorial.HittingSet.DAA#ToySolver.Combinatorial.Knapsack.BB(ToySolver.Combinatorial.Knapsack.DPDense)ToySolver.Combinatorial.Knapsack.DPSparse!ToySolver.Combinatorial.SubsetSumToySolver.Converter.BaseToySolver.Converter.ObjTypeToySolver.Converter.PB2LSPToySolver.Converter.PB2SMPToySolver.Converter.PBSetObjToySolver.Data.BooleanToySolver.Data.DNFToySolver.Data.IntVarToySolver.Data.FOL.FormulaToySolver.Data.BoolExprToySolver.Data.LBoolToySolver.Data.MIP.FileUtilsToySolver.Data.MIP.MPSFileToySolver.Data.OrdRelToySolver.Data.LA ToySolver.Arith.Simplex.TextbookToySolver.Data.FOL.ArithToySolver.Data.LA.FOLToySolver.BitVector.Base#ToySolver.Arith.VirtualSubstitution#ToySolver.Arith.FourierMotzkin.Base+ToySolver.Arith.FourierMotzkin.Optimization"ToySolver.Arith.FourierMotzkin.FOLToySolver.Arith.Cooper.BaseToySolver.Arith.Cooper.FOLToySolver.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.Rational$ToySolver.Data.AlgebraicNumber.Sturm#ToySolver.Data.AlgebraicNumber.Root#ToySolver.Data.AlgebraicNumber.RealToySolver.Arith.CAD&ToySolver.Data.AlgebraicNumber.Complex0ToySolver.Data.Polynomial.Interpolation.LagrangeToySolver.FileFormat.BaseToySolver.Graph.ShortestPathToySolver.Arith.DifferenceLogicToySolver.Internal.Data.IOURefToySolver.Internal.Data.Vec%ToySolver.Internal.Data.PriorityQueue,ToySolver.Internal.Data.IndexedPriorityQueueToySolver.EUF.CongruenceClosureToySolver.EUF.EUFSolverToySolver.Internal.ProcessUtil!ToySolver.Data.MIP.Solver.LPSolve&ToySolver.Combinatorial.HittingSet.SHD)ToySolver.Combinatorial.HittingSet.HTCBDDToySolver.Internal.TextUtilToySolver.Internal.Util1ToySolver.Data.Polynomial.Factorization.KroneckerToySolver.Data.MIP.LPFileToySolver.Data.MIP ToySolver.Data.MIP.Solution.SCIPToySolver.Data.MIP.Solver.SCIP"ToySolver.Data.MIP.Solution.Gurobi"ToySolver.Data.MIP.Solver.GurobiCl ToySolver.Data.MIP.Solution.GLPK ToySolver.Data.MIP.Solver.Glpsol!ToySolver.Data.MIP.Solution.CPLEXToySolver.Data.MIP.Solver.CPLEXToySolver.Data.MIP.Solution.CBCToySolver.Data.MIP.Solver.CBCToySolver.Data.DeltaToySolver.Converter.MIP2SMTToySolver.Arith.SimplexToySolver.Arith.Simplex.SimpleToySolver.Arith.OmegaTest.BaseToySolver.Arith.OmegaTestToySolver.Arith.MIPToySolver.Arith.BoundsInference)ToySolver.Arith.Simplex.Textbook.LPSolver0ToySolver.Arith.Simplex.Textbook.LPSolver.Simple1ToySolver.Arith.Simplex.Textbook.MIPSolver.SimpleToySolver.Arith.LPUtilToySolver.Arith.ContiTraversoToySolver.MaxCutToySolver.QUBOToySolver.SAT.ConfigToySolver.SAT.TypesToySolver.SAT.TheorySolverToySolver.SAT.Store.PBToySolver.SAT.PrinterToySolver.SAT.PBO.Context.ToySolver.SAT.MessagePassing.SurveyPropagationToySolver.SAT.MUS.TypesToySolver.SAT.Encoder.TseitinToySolver.SAT.Encoder.PBNLC(ToySolver.SAT.Encoder.PB.Internal.Sorter%ToySolver.SAT.Encoder.PB.Internal.BDD'ToySolver.SAT.Encoder.PB.Internal.AdderToySolver.SAT.Encoder.PBToySolver.SAT.Encoder.Integer:ToySolver.SAT.Encoder.Cardinality.Internal.ParallelCounter0ToySolver.SAT.Encoder.Cardinality.Internal.Naive!ToySolver.SAT.Encoder.Cardinality ToySolver.SATToySolver.SAT.PBO.UnsatBasedToySolver.SAT.PBO.MSU4ToySolver.SAT.PBO.BCD2ToySolver.SAT.PBO.BCDToySolver.SAT.PBO.BCToySolver.SAT.PBOToySolver.SAT.MUS.EnumToySolver.SAT.MUSToySolver.EUF.FiniteModelFinder(ToySolver.Combinatorial.HittingSet.MARCOToySolver.BitVector.SolverToySolver.FileFormat.CNFToySolver.SAT.Store.CNFToySolver.SAT.SLS.ProbSAT'ToySolver.SAT.ExistentialQuantification ToySolver.QBFToySolver.FileFormatToySolver.Converter.TseitinToySolver.Converter.SAT2KSATToySolver.Converter.SAT2MaxSATToySolver.Converter.QBF2IPCToySolver.Converter.PBToySolver.Converter.QUBOToySolver.Converter.PB2IPToySolver.Converter.NAESATToySolver.Converter.SAT2MaxCutToySolver.Converter.MIP2PBToySolver.Converter.GCNF2MaxSAT ToySolver.SMTToySolver.Text.CNFToySolver.Text.GCNFToySolver.Text.QDimacsToySolver.Text.SDPFile ToySolver.SDPToySolver.Text.WCNFToySolver.WangPaths_toysolver9ToySolver.Converter.PB.Internal.LargestIntersectionFinder'ToySolver.Converter.PB.Internal.ProductToySolver.Arith.FourierMotzkinToySolver.Arith.CooperToySolver.Data.Polynomial.Base.ToySolver.Data.Polynomial.Factorization.Hensel&ToySolver.Data.AlgebraicNumber.GraeffeToySolver.Data.MIP.SolverToySolver.SAT.MUS.Enum.BaseToySolver.SAT.MUS.Enum.CAMUSToySolver.SAT.MUS.BaseToySolver.SAT.MUS.QuickXplainToySolver.SAT.MUS.InsertionToySolver.SAT.MUS.DeletionToySolver.BitVectorToySolver.ConverterToySolver.Version.TH#OptDir-0.0.3-7lxlwY9FHCs8w9E7eOn3KE Data.OptDirOptMaxOptMinOptDir1data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQData.Default.ClassdefDefault-extended-reals-0.2.3.0-39sW7zXPqKfJpxlTkvMvsJData.ExtendedRealFiniteExtendedNegInfPosInf"queue-0.1.2-KxTIX60a2s2FIFdUZSVO8PData.Queue.ClassesnewFifoNewFifo enqueueBatchenqueueEnqueue dequeueBatchdequeueDequeue queueSize QueueSizeversionmaximumCardinalityMatchingmaximumWeightMatchingCompletemaximumWeightMatching$maximumWeightPerfectMatchingComplete$minimumWeightPerfectMatchingCompletemaximumWeightPerfectMatchingminimumWeightPerfectMatchingminimumCardinalityEdgeCoverminimumWeightEdgeCoverminimumWeightEdgeCoverCompleteisCounterExampleOf 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 checkDualityBmaintainNoSupersetsminimalHittingSetsenumMinimalHittingSetsImplicateOrImplicant Implicate ImplicantOptionsoptMinimalHittingSetsoptMaximalInterestingSetsoptMinimalUninterestingSetsoptOnMaximalInterestingSetFound!optOnMinimalUninterestingSetFound SimpleProblem IsProblemuniverse isInterestingisInteresting'growshrinkmaximalInterestingSetminimalUninterestingSet.minimalUninterestingSetOrMaximalInterestingSetInterestingOrUninterestingSetUninterestingSetInterestingSet defaultGrow defaultShrinkdefaultMaximalInterestingSetdefaultMinimalUninterestingSet5defaultMinimalUninterestingSetOrMaximalInterestingSet$fIsProblemSimpleProblemm$fDefaultOptions!$fEqInterestingOrUninterestingSet"$fOrdInterestingOrUninterestingSet#$fShowInterestingOrUninterestingSet#$fReadInterestingOrUninterestingSet$fEqImplicateOrImplicant$fOrdImplicateOrImplicant$fShowImplicateOrImplicant$fReadImplicateOrImplicantrun"findPrimeImplicateOrPrimeImplicantgenerateCNFAndDNFValueWeightsolve solveGenericsolveInt solveInteger maxSubsetSum minSubsetSum subsetSumReversedTransformerIdentityTransformerComposedTransformerObjValueBackwardTransformertransformObjValueBackwardObjValueForwardTransformertransformObjValueForwardObjValueTransformerSourceObjValueTargetObjValueBackwardTransformertransformBackwardForwardTransformertransformForward TransformerSourceTarget0$fObjValueBackwardTransformerComposedTransformer/$fObjValueForwardTransformerComposedTransformer($fObjValueTransformerComposedTransformer($fBackwardTransformerComposedTransformer'$fForwardTransformerComposedTransformer $fTransformerComposedTransformer($fBackwardTransformerIdentityTransformer'$fForwardTransformerIdentityTransformer $fTransformerIdentityTransformer0$fObjValueBackwardTransformerReversedTransformer/$fObjValueForwardTransformerReversedTransformer($fObjValueTransformerReversedTransformer($fBackwardTransformerReversedTransformer'$fForwardTransformerReversedTransformer $fTransformerReversedTransformer$fEqComposedTransformer$fShowComposedTransformer$fReadComposedTransformer$fEqIdentityTransformer$fShowIdentityTransformer$fReadIdentityTransformer$fEqReversedTransformer$fShowReversedTransformer$fReadReversedTransformerObjTypeObjNone ObjMaxOne ObjMaxZero $fEqObjType $fOrdObjType $fEnumObjType$fBoundedObjType $fShowObjTypepb2lspwbo2lsppb2smpsetObjBoolean.=>..<=>. IfThenElseite ComplementnotBMonotoneBooleantruefalse.&&..||.andBorB iteBoolean$fMonotoneBooleanBool$fMonotoneBoolean->$fMonotoneBoolean(,)$fComplementBool$fComplement->$fComplement(,)$fIfThenElseBoolBool $fBooleanBool $fBoolean->$fIfThenElse->-> $fBoolean(,)$fIfThenElse(,)(,)DNFunDNF $fBooleanDNF$fIfThenElseDNFDNF$fMonotoneBooleanDNF$fComplementDNF $fShowDNFEvalevalModel VariablesvarsVarMapVarSetVar $fVariables[]FormulaTFAtomAndOrNotImplyEquivForallExistspushNot$fBooleanFormula$fIfThenElseFormulaFormula$fMonotoneBooleanFormula$fComplementFormula$fVariablesFormula $fShowFormula $fEqFormula $fOrdFormulaBoolExprITEfoldsimplify$fEvalmBoolExprBool$fVariablesBoolExpr$fBooleanBoolExpr$fIfThenElseBoolExprBoolExpr$fMonotoneBooleanBoolExpr$fComplementBoolExpr$fHashableBoolExpr$fNFDataBoolExpr$fTraversableBoolExpr$fFoldableBoolExpr$fMonadBoolExpr$fApplicativeBoolExpr$fFunctorBoolExpr$fBooleanSimplify$fIfThenElseSimplifySimplify$fMonotoneBooleanSimplify$fComplementSimplify $fEqBoolExpr $fOrdBoolExpr$fShowBoolExpr$fReadBoolExpr$fDataBoolExprLBoollTruelFalselUndeflnotliftBool unliftBool $fShowLBool $fEqLBool FileOptionsoptFileEncodingSolution solStatussolObjectiveValue solVariablesStatus StatusUnknownStatusFeasible StatusOptimalStatusInfeasibleOrUnboundedStatusInfeasibleStatusUnbounded SOSConstraintsosLabelsosTypesosBodySOSTypeS1S2RelOpLeGeEql Constraint constrLabelconstrIndicator constrExprconstrLBconstrUB constrIsLazyObjectiveFunctionobjLabelobjDirobjExprTermExprBounds BoundExprVarTypeContinuousVariableIntegerVariableSemiContinuousVariableSemiIntegerVariableLabelProblemnameobjectiveFunction constraintssosConstraintsuserCutsvarType varBoundstoVarfromVar getVarType defaultBounds defaultLB defaultUB getBoundsintersectBoundsvarExpr constExprterms.==..<=..>=. meetStatus variablesintegerVariablessemiContinuousVariablessemiIntegerVariables$fDefaultVarType $fFunctorTerm $fFunctorExpr $fNumExpr$fFunctorObjectiveFunction$fDefaultObjectiveFunction$fFunctorConstraint$fDefaultConstraint$fFunctorSOSConstraint$fFunctorProblem$fDefaultProblem$fPartialOrdStatus$fDefaultSolution$fFunctorSolution$fVariablesSOSConstraint$fVariablesConstraint$fVariablesObjectiveFunction$fVariablesTerm$fVariablesExpr$fVariablesProblem$fVariablesEither$fDefaultFileOptions $fEqVarType $fOrdVarType $fShowVarType$fEqTerm $fOrdTerm $fShowTerm$fEqExpr $fOrdExpr $fShowExpr$fEqObjectiveFunction$fOrdObjectiveFunction$fShowObjectiveFunction$fEqConstraint$fOrdConstraint$fShowConstraint $fEqRelOp $fOrdRelOp $fEnumRelOp $fShowRelOp $fEqSOSType $fOrdSOSType $fEnumSOSType $fShowSOSType $fReadSOSType$fEqSOSConstraint$fOrdSOSConstraint$fShowSOSConstraint $fShowProblem $fEqProblem $fOrdProblem $fEqStatus $fOrdStatus $fEnumStatus$fBoundedStatus $fShowStatus $fEqSolution $fOrdSolution$fShowSolution$fShowFileOptions ParseError parseString parseFileparserrender $fEqBoundType$fOrdBoundType$fShowBoundType$fReadBoundType$fEnumBoundType$fBoundedBoundTypeIsSolver SolveOptionssolveTimeLimit solveLoggersolveErrorLogger$fDefaultSolveOptionsOrdRelIsOrdRel.<..>.ordRelIsEqRel./=.LtGtNEqflipOpnegOpshowOpevalOp fromOrdRel$fEvalmOrdRelBool$fFunctorOrdRel$fVariablesOrdRel$fIsOrdReleOrdRel$fIsEqReleOrdRel$fComplementOrdRel $fShowOrdRel $fEqOrdRel $fOrdOrdRel BoundsEnvcoeffMap fromCoeffMap fromTermsunitVarasConstvarconstantmapCoeffmapCoeffWithVarevalExpr evalLinearlift1 applySubst applySubst1coeff lookupCoeffextract extractMaybeshowExprshowAtomevalAtomapplySubstAtomapplySubst1AtomsolveForcomputeInterval$fEvalIntMapExprr$fVectorSpaceExpr$fAdditiveGroupExpr $fNFDataExpr $fReadExprRowColIndexRowIndexTableau emptyTableau objRowIndexpivot lookupRowaddRow setObjFun currentValuecurrentObjValueisValidTableau isFeasible isOptimalsimplex dualSimplexphaseIprimalDualSimplextoCSV$fShowPivotResult$fEqPivotResult$fOrdPivotResult SatResultUnknownUnsatSatConst:+::*::/:$fFractionalExpr$fIsOrdRelExprFormula$fIsEqRelExprFormula$fShowSatResult $fEqSatResult$fOrdSatResult fromFOLAtom toFOLFormula fromFOLExpr toFOLExprRelOp2OpConcatOpAndOpOrOpXOrOpCompOpAddOpMulOpUDivOpURemOpSDivOpSRemOpSModOpShlOpLShrOpAShrOp1 OpExtractOpNotOpNegEConstEVarEOp1EOp2varWidthvarIdBV BVComparisonComparisonResultbvulebvultbvugebvugtbvslebvsltbvsgebvsgtIsBVwidthfromBVbvnotbvandbvorbvxorbvnandbvnorbvxnorbvnegbvaddbvsubbvmulbvudivbvurembvsdivbvsrembvsmodbvshlbvlshrbvashrbvcomprepeat zeroExtend signExtendbv2natnat2bv fromAscBits fromDescBits toAscBits toDescBits$fIsEqRelBVBool$fShowBV $fMonoidBV $fSemigroupBV$fOrdBV$fIsBVBV$fBitsBV$fBVComparisonBV $fBitsExpr $fMonoidExpr$fSemigroupExpr $fIsBVExpr$fBVComparisonExpr$fIsEqRelExprAtom$fComplementAtom$fEqBV$fEqVar$fOrdVar $fShowVar$fEqOp1$fOrdOp1 $fShowOp1$fEqOp2$fOrdOp2 $fEnumOp2 $fBoundedOp2 $fShowOp2$fEqAtom $fOrdAtom $fShowAtom QFFormula evalQFFormulaprojectprojectN projectCases projectCasesNsolveQFFormulaConstrIsNonnegIsPosIsZeroRatExprZtoRateqR fromLAAtomtoLAAtomconstraintsToDNF evalBoundsboundsToConstrs collectBoundsproject' projectN'solve'$fEvalIntMapConstrBool$fVariablesConstr $fShowConstr $fEqConstr $fOrdConstroptimize solveFormulaeliminateQuantifierseliminateQuantifiers'Lit Divisible.|.evalLitsolveQFLIRAConj$fEvalIntMapLitBool$fComplementLit$fVariablesLit$fIsOrdRelExprBoolExpr$fIsEqRelExprBoolExpr$fEvalIntMapWitnessInteger $fMonoidLCM$fSemigroupLCM $fShowLit$fEqLit$fOrdLit $fShowWitness MonomialOrder UMonomialMonomial mindicesMapUTermX UPolynomial PrettyVar pPrintVar PrettyCoeff pPrintCoeffisNegativeCoeff PrintOptions pOptPrintVarpOptPrintCoeffpOptIsNegativeCoeffpOptMonomialOrderSQFreesqfreeFactorfactorContPPPPCoeffcontpp PolynomialDegreedegVarsfromTermltlclm isPrimitivederivintegralsubsttoMonictoUPolynomialOfdivModMPreduceeisensteinsCriterion prettyPrintnatdivmoddivModdividesgcdlcmexgcdpdivModpdivpmodgcd'isRootOf isSquareFreetdegtscaletmulttdividestdivtderiv tintegralmone mfromIndicesmfromIndicesMapmindicesmmultmpowmdividesmdivmderiv mintegralmlcmmgcdmcoprimelexrevlexgrlexgrevlexhenselcabook_proposition_5_10cabook_proposition_5_11 sqfreeChar0$fSQFreePolynomial$fSQFreePolynomial0StrategyNormalStrategy SugarStrategy optStrategy spolynomialbasisbasis' reduceGBasis$fEqItem $fOrdItem $fEqStrategy $fOrdStrategy$fShowStrategy$fReadStrategy$fBoundedStrategy$fEnumStrategy berlekampbasisOfBerlekampSubalgebra$fFactorPolynomial zassenhaus 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 $fShowARealCellPointIntervalRootOf findSampleevalCell evalPoint $fEqPoint $fOrdPoint $fShowPoint$fEqCell $fOrdCell $fShowCellAComplex:+realPartimagPart conjugate magnitude$fFractionalAComplex $fNumAComplex $fEqAComplex$fShowAComplex interpolate FileFormatparsereadFile writeFile$fExceptionParseError$fShowParseErrorFoldPathEmpty SingletonAppendInEdgeOutEdgeEdgeGraphpathFrompathTopathCost pathEmpty pathAppend pathEdgespathEdgesBackward pathEdgesSeq pathVertexespathVertexesBackwardpathVertexesSeqpathMinpathFoldmonoid'monoidunitpairpathcost firstOutEdge lastInEdge bellmanFordbellmanFordDetectNegativeCycledijkstra floydWarshall$fApplicativeFold $fFunctorFold$fEqPath $fShowPath SimpleAtom:<=Diff:-$fEqDiff $fOrdDiff $fShowDiff$fEqSimpleAtom$fOrdSimpleAtom$fShowSimpleAtomIOURef newIOURef readIOURef writeIOURef modifyIOURef $fEqIOURefSeqQueueclear$fQueueSizeSeqQueuem$fDequeueSeqQueuema$fEnqueueSeqQueuema$fNewFifoSeqQueuemIndexUVecVec GenericVecnewgetSizereadwritemodifymodify' unsafeModify unsafeModify' unsafeRead unsafeWriteresizegrowTopushpopMaybepop unsafePoppeek unsafePeekgetElemsclonegetArray getCapacityresizeCapacity$fEqGenericVec PriorityQueuenewPriorityQueuenewPriorityQueueByrebuild getHeapArray getHeapVecresizeHeapCapacity$fQueueSizePriorityQueueIO$fDequeuePriorityQueueIOa$fEnqueuePriorityQueueIOa$fNewFifoPriorityQueueIOmemberupdateresizeTableCapacity$fDequeuePriorityQueueIOInt$fEnqueuePriorityQueueIOInt mUniverse mFunctions mUnspecified mEquivClasses EntityTupleEntityVAFun withVArgsSolverConstrIDFlatTermFTConstFTAppTAppFSym newSolvernewFSymnewFunnewConstmergemerge' mergeFlatTermmergeFlatTerm' areCongruentareCongruentFlatTermexplainexplainFlatTerm explainConstgetModelevalAppushBacktrackPointpopBacktrackPointtermToFlatTermflatTermToFSymfsymToFlatTerm termToFSym fsymToTerm$fSemigroupClass $fVAFun-> $fVAFunTerm $fOrdFlatTerm $fEqFlatTerm$fShowFlatTerm$fEqEqn0 $fOrdEqn0 $fShowEqn0$fEqEqn1 $fOrdEqn1 $fShowEqn1 $fShowClass $fShowModel$fShowTrailItem assertEqual assertEqual'assertNotEqualassertNotEqual'checkareEqualrunProcessWithOutputCallbackLPSolve lpSolvePathlpSolve$fIsSolverLPSolveIO$fDefaultLPSolveFailure optSHDCommand optSHDArgs optOnGetLineoptOnGetErrorLine$fExceptionFailure $fShowFailureMethod MethodToda MethodKnuthoptHTCBDDCommand optMethod$fDefaultMethod $fEqMethod $fOrdMethod $fShowMethodreadIntreadUnsignedInteger combineMaybe isIntegerfracPart showRationalshowRationalAsFiniteDecimal revSequencerevMapMrevForMsetEncodingChar8 readLPFile readMPSFile parseLPStringparseMPSString writeLPFile writeMPSFile toLPString toMPSStringSCIPscipPathscip$fIsSolverSCIPIO $fDefaultSCIPGurobiCl gurobiClPathgurobiCl$fIsSolverGurobiClIO$fDefaultGurobiClGlpsol glpsolPathglpsol$fIsSolverGlpsolIO$fDefaultGlpsolCPLEX cplexPathcplex$fIsSolverCPLEXIO$fDefaultCPLEXCBCcbcPathcbc$fIsSolverCBCIO $fDefaultCBCDeltadeltafromReal deltaPartfloor'ceiling' isInteger'$fRealFracDelta $fRealDelta$fFractionalDelta $fNumDelta$fVectorSpaceDelta$fAdditiveGroupDelta $fOrdDelta $fEqDelta $fShowDelta YicesVersionYices1Yices2LanguageSMTLIB2YICES optLanguage optSetLogic optCheckSAToptProduceModel optOptimizemip2smt$fShowYicesVersion$fEqYicesVersion$fOrdYicesVersion$fEnumYicesVersion$fBoundedYicesVersion$fShowLanguage $fEqLanguage $fOrdLanguage $fShowOptions $fEqOptions $fOrdOptionsRawModelobjLimit OptResultOptimum UnboundedObjLimit PivotStrategyPivotStrategyBlandRulePivotStrategyLargestCoefficientConfigconfigPivotStrategyconfigEnableBoundTighteningBound ConstrIDSet SolverValuetoValue showValue GenericSolverGenericSolverM cloneSolver boundValueboundExplanation setConfig getConfig modifyConfigshowPivotStrategyparsePivotStrategysetPivotStrategynewVar assertAtom assertAtom' assertAtomEx assertAtomEx' simplifyAtom assertLower assertLower' assertUpper assertUpper'getObj setOptDir getOptDirnVarsisBasicVariableisNonBasicVariable getRawModel getObjValuegetLBgetUB getTableaugetValuegetRowgetColgetCoeff setLogger clearLoggerenableTimeRecordingdisableTimeRecordingdump$fDefaultConfig$fSolverValueDelta$fSolverValueRatio$fEqPivotStrategy$fOrdPivotStrategy$fEnumPivotStrategy$fBoundedPivotStrategy$fShowPivotStrategy$fReadPivotStrategy $fShowConfig $fEqConfig $fOrdConfig$fShowOptResult $fEqOptResult$fOrdOptResult optCheckRealcheckRealNoCheck checkRealByFMzmodcheckRealByCAD checkRealByVScheckRealBySimplexgetBestSolution getBestModel getBestValuesetShowRational setNThreadsetOnUpdateBestSolution inferBoundsLP emptySolver putTableaudefine#addConstraintWithArtificialVariable addConstrainttableautwoPhaseSimplexcollectNonnegVarsOptUnsatmaximizeminimize$fOrdErr$fEqErr $fShowErr $fEnumErr $fBoundedErrtoStandardFormtoStandardForm'numNodesnumEdgesmatrix fromEdgesedgesbuildDSDPMaxCutGraphbuildDSDPMaxCutGraph'evalEdge IsingModel isingNumVarsisingInteractionisingExternalMagneticField quboNumVars quboMatrixevalIsingModel$fFileFormatProblem$fEqIsingModel$fShowIsingModel PBHandlerTypePBHandlerTypeCounterPBHandlerTypePuebloBranchingStrategyBranchingVSIDS BranchingERWA BranchingLRBLearningStrategyLearningClauseLearningHybridRestartStrategyMiniSATRestarts ArminRestarts LubyRestartsconfigRestartStrategyconfigRestartFirstconfigRestartIncconfigLearningStrategyconfigLearntSizeFirstconfigLearntSizeInc configCCMinconfigBranchingStrategyconfigERWAStepSizeFirstconfigERWAStepSizeDecconfigERWAStepSizeMinconfigEMADecayconfigEnablePhaseSaving%configEnableForwardSubsumptionRemoval&configEnableBackwardSubsumptionRemovalconfigRandomFreqconfigPBHandlerTypeconfigEnablePBSplitClausePartconfigCheckModelconfigVarDecayconfigConstrDecayshowRestartStrategyparseRestartStrategyshowLearningStrategyparseLearningStrategyshowBranchingStrategyparseBranchingStrategyshowPBHandlerTypeparsePBHandlerType$fDefaultRestartStrategy$fDefaultLearningStrategy$fDefaultBranchingStrategy$fDefaultPBHandlerType$fShowRestartStrategy$fEqRestartStrategy$fOrdRestartStrategy$fEnumRestartStrategy$fBoundedRestartStrategy$fShowLearningStrategy$fEqLearningStrategy$fOrdLearningStrategy$fEnumLearningStrategy$fBoundedLearningStrategy$fShowBranchingStrategy$fEqBranchingStrategy$fOrdBranchingStrategy$fEnumBranchingStrategy$fBoundedBranchingStrategy$fShowPBHandlerType$fEqPBHandlerType$fOrdPBHandlerType$fEnumPBHandlerType$fBoundedPBHandlerType AddXORClause addXORClauseaddXORClauseSoftAddPBNLaddPBNLAtLeast addPBNLAtMostaddPBNLExactlyaddPBNLAtLeastSoftaddPBNLAtMostSoftaddPBNLExactlySoftAddPBLin addPBAtLeast addPBAtMost addPBExactlyaddPBAtLeastSoftaddPBAtMostSoftaddPBExactlySoftAddCardinality addAtLeast addAtMost addExactly AddClause addClauseNewVarnewVarsnewVars_ XORClausePBSumPBTerm PBLinExactly PBLinAtLeastPBLinSum PBLinTermExactlyAtLeast PackedClauseClauseLitMapLitSetIModelevalVarvalidVar restrictModellitUndefvalidLitliterallitNotlitVar litPolaritynormalizeClauseinstantiateClause clauseSubsume evalClauseclauseToPBLinAtLeast packClause unpackClausenormalizeAtLeastinstantiateAtLeast evalAtLeast evalExactlynormalizePBLinSumnormalizePBLinAtLeastnormalizePBLinExactlyinstantiatePBLinAtLeastinstantiatePBLinExactly cutResolvecardinalityReductionnegatePBLinAtLeast evalPBLinSumevalPBLinAtLeastevalPBLinExactlypbLinLowerBoundpbLinUpperBound pbLinSubsume evalPBSumevalPBConstraint evalPBFormula pbLowerBound pbUpperBoundremoveNegationFromPBSumnormalizeXORClauseinstantiateXORClause evalXORClause $fIModel-> $fIModelArray$fIModelUArray TheorySolver thAssertLitthCheck thExplainthPushBacktrackPointthPopBacktrackPointthConstructModel emptyTheoryPBStore newPBStore getPBFormula$fAddPBNLmPBStore$fAddPBLinmPBStore$fAddCardinalitymPBStore$fAddClausemPBStore$fNewVarmPBStore satPrintModelmaxsatPrintModel pbPrintModel musPrintSol Normalized SimpleContextContextgetObjectiveFunctionevalObjectiveFunctionisUnsat getLowerBoundsetUnsat addSolution addLowerBound logMessage isOptimum isFinishedgetSearchUpperBound setFinishednewSimpleContextnewSimpleContext2setOnUpdateLowerBound normalize$fContextSimpleContext$fContextNormalized deleteSolverinitializeRandominitializeRandomDirichletgetNVarsgetNConstraints getTolerance setTolerancegetIterationLimitsetIterationLimit getNThreads setNThreads propagate getVarProbfixLitunfixLit printInfoMSSSSMCSCSMUSUSPolaritypolarityPosOccurspolarityNegOccursEncoder evalFormula newEncodernewEncoderWithPBLinsetUsePB addFormula encodeFormulaencodeFormulaWithPolarity encodeConjencodeConjWithPolarity encodeDisjencodeDisjWithPolarity encodeITEencodeITEWithPolarity encodeXORencodeXORWithPolarity encodeFASumencodeFASumWithPolarity encodeFACarryencodeFACarryWithPolaritygetDefinitionsnegatePolarity polarityPos polarityNeg polarityBoth polarityNone$fAddClausemEncoder$fNewVarmEncoder $fEqPolarity$fShowPolaritygetTseitinEncoderlinearizePBSumlinearizePBSumWithPolarity$fAddPBNLmEncoder$fAddPBLinmEncoder$fAddCardinalitymEncoderCostUNumberUDigitBasegenSorterCircuit sortVectorisRepresentableencodedecode optimizeBaseaddPBLinAtLeastSorterencodePBLinAtLeastSorteraddPBLinAtLeastBDDencodePBLinAtLeastBDDaddPBLinAtLeastAdderencodePBLinAtLeastAdderBDDAdderSorterHybridnewEncoderWithStrategyencodePBLinAtLeast$fDefaultStrategy linearizeaddConstraintSoftaddAtLeastParallelCounterencodeAtLeastParallelCounteraddAtLeastNaiveencodeAtLeastNaiveNaiveParallelCounter encodeAtLeastCanceledBudgetExceeded getVarFixed getLitFixedgetFixedLiteralsvarDecayActivityvarBumpActivitygetNLearntConstraintsnewSolverWithConfigresizeVarCapacity solveWithcancelgetFailedAssumptionsgetAssumptionsImplicationssetVarPolarity setRandomGen getRandomGen setConfBudget setTheory$fExceptionBudgetExceeded$fExceptionCanceled$fHashableClauseHandler$fEqClauseHandler$fHashableAtLeastHandler$fEqAtLeastHandler$fHashablePBHandlerCounter$fEqPBHandlerCounter$fHashablePBHandlerPueblo$fEqPBHandlerPueblo$fHashableXORClauseHandler$fEqXORClauseHandler$fHashableTheoryHandler$fHashableSomeConstraintHandler$fAddXORClauseIOSolver$fAddCardinalityIOSolver$fAddClauseIOSolver$fNewVarIOSolver $fConstraintHandlerTheoryHandler#$fConstraintHandlerXORClauseHandler"$fConstraintHandlerPBHandlerPueblo#$fConstraintHandlerPBHandlerCounter!$fConstraintHandlerAtLeastHandler $fConstraintHandlerClauseHandler($fConstraintHandlerSomeConstraintHandler$fAddPBLinIOSolver$fShowBudgetExceeded$fShowCanceled$fEqTheoryHandler$fEqSomeConstraintHandleroptEnableHardeningoptEnableBiasedSearchoptSolvingNormalFirst Optimizer LinearSearch BinarySearchAdaptiveSearch UnsatBasedMSU4BCBCDBCD2 showMethod parseMethod newOptimizer newOptimizer2 getMethod setMethod!defaultEnableObjFunVarsHeuristicsgetEnableObjFunVarsHeuristicssetEnableObjFunVarsHeuristicsdefaultTrialLimitConfgetTrialLimitConfsetTrialLimitConf $fEnumMethod$fBoundedMethod optLogger optShowLit optEvalConstr optOnMCSFound optOnMUSFound optKnownMCSes optKnownMUSes optKnownCSesCAMUSDAAMARCOGurvichKhachiyan1999 optUpdateBestDeletion Insertion QuickXplainfindMUSAssumptions mRelations GenFormulaPAppTmAppTmVarGenLitPosNegPSym toSkolemNF showEntity showModelevalTerm evalClauses evalClausesU findModel$fVars[] $fVarsGenLit$fComplementGenLit $fVarsTerm $fVarsAtom$fVarsGenFormula$fBooleanGenFormula $fIfThenElseGenFormulaGenFormula$fComplementGenFormula$fMonotoneBooleanGenFormula$fVarsSGenTerm$fVarsSGenAtom $fShowGenLit $fEqGenLit $fOrdGenLit$fShowGenFormula$fEqGenFormula$fOrdGenFormula$fShowSGenTerm $fEqSGenTerm $fOrdSGenTerm$fShowSGenAtom $fEqSGenAtom $fOrdSGenAtomallMUSAssumptions$fIsProblemProblemIOnewVar'$fEqNormalizedRel$fOrdNormalizedRel$fEnumNormalizedRel$fBoundedNormalizedRel$fShowNormalizedRel$fEqNormalizedAtom$fOrdNormalizedAtom$fShowNormalizedAtomQuantSet QuantifierEAQDimacsqdimacsNumVarsqdimacsNumClauses qdimacsPrefix qdimacsMatrixGClause GroupIndexGCNF gcnfNumVarsgcnfNumClausesgcnfLastGroupIndex gcnfClausesWeightedClauseWCNF wcnfNumVarswcnfNumClauses wcnfTopCost wcnfClausesCNF cnfNumVars cnfNumClauses cnfClauses$fFileFormatCNF$fFileFormatWCNF$fFileFormatGCNF$fFileFormatQDimacs$fEqCNF$fOrdCNF $fShowCNF $fReadCNF$fEqWCNF $fOrdWCNF $fShowWCNF $fReadWCNF$fEqGCNF $fOrdGCNF $fShowGCNF $fReadGCNF$fEqQuantifier$fOrdQuantifier$fShowQuantifier$fReadQuantifier$fEnumQuantifier$fBoundedQuantifier $fEqQDimacs $fOrdQDimacs $fShowQDimacs $fReadQDimacsCNFStore newCNFStore getCNFFormula$fAddClausemCNFStore$fNewVarmCNFStore StatisticsstatTotalCPUTime statFlipsstatFlipsPerSecond CallbackscbGenerateInitialSolutioncbOnUpdateBestSolution optTarget optMaxTries optMaxFlipsoptPickClauseWeightednewSolverWeighted getNumVars getStatisticsgenerateUniformRandomSolutionprobsatwalksat$fDefaultStatistics$fDefaultCallbacks$fExceptionFinished$fEqStatistics$fShowStatistics$fShowFinishedshortestImplicantsshortestImplicantsE negateCNFMatrixPrefixnormalizePrefixquantifyFreeVariables solveNaive solveCEGARsolveCEGARIncrementalsolveQE solveQE_CNF$fShowCNFOrDNF$fFileFormatSoftFormula$fFileFormatFormula TseitinInfo $fBackwardTransformerTseitinInfo$fForwardTransformerTseitinInfo$fTransformerTseitinInfo$fEqTseitinInfo$fShowTseitinInfo$fReadTseitinInfo SAT2KSATInfosat2ksat!$fBackwardTransformerSAT2KSATInfo $fForwardTransformerSAT2KSATInfo$fTransformerSAT2KSATInfo$fEqSAT2KSATInfo$fShowSAT2KSATInfo$fReadSAT2KSATInfoSATToSimpleMaxCutInfoSimpleMaxSAT2ToSimpleMaxCutInfoSimplifyMaxSAT2Info SimpleMaxSAT2MaxSAT2ToSimpleMaxCutInfoSAT3ToMaxSAT2InfoSATToMaxSAT2Info satToMaxSAT2 sat3ToMaxSAT2maxSAT2ToSimpleMaxCutsimplifyMaxSAT2simpleMaxSAT2ToSimpleMaxCutsatToSimpleMaxCut&$fBackwardTransformerSAT3ToMaxSAT2Info%$fForwardTransformerSAT3ToMaxSAT2Info$fTransformerSAT3ToMaxSAT2Info($fBackwardTransformerSimplifyMaxSAT2Info'$fForwardTransformerSimplifyMaxSAT2Info $fTransformerSimplifyMaxSAT2Info4$fBackwardTransformerSimpleMaxSAT2ToSimpleMaxCutInfo3$fForwardTransformerSimpleMaxSAT2ToSimpleMaxCutInfo,$fTransformerSimpleMaxSAT2ToSimpleMaxCutInfo$fEqSAT3ToMaxSAT2Info$fShowSAT3ToMaxSAT2Info$fReadSAT3ToMaxSAT2Info$fEqSimplifyMaxSAT2Info$fShowSimplifyMaxSAT2Info$fReadSimplifyMaxSAT2Info#$fEqSimpleMaxSAT2ToSimpleMaxCutInfo%$fShowSimpleMaxSAT2ToSimpleMaxCutInfo%$fReadSimpleMaxSAT2ToSimpleMaxCutInfoqbf2ipcWBO2MaxSATInfoMaxSAT2WBOInfo PB2SATInfo SAT2PBInfo WBO2PBInfo PB2WBOInfo PB2QUBOInfo'PBUnconstrainInfoPBInequalitiesToEqualitiesInfoPBQuadratizeInfoPBLinearizeInfo normalizePB normalizeWBO linearizePB linearizeWBO quadratizePB quadratizePB'inequalitiesToEqualitiesPB unconstrainPBpb2qubo'pb2wbowbo2pbaddWBOsat2pbpb2sat maxsat2wbo wbo2maxsat-$fObjValueBackwardTransformerPBQuadratizeInfo,$fObjValueForwardTransformerPBQuadratizeInfo%$fObjValueTransformerPBQuadratizeInfo%$fBackwardTransformerPBQuadratizeInfo$$fForwardTransformerPBQuadratizeInfo$fTransformerPBQuadratizeInfo;$fObjValueBackwardTransformerPBInequalitiesToEqualitiesInfo:$fObjValueForwardTransformerPBInequalitiesToEqualitiesInfo3$fObjValueTransformerPBInequalitiesToEqualitiesInfo3$fBackwardTransformerPBInequalitiesToEqualitiesInfo2$fForwardTransformerPBInequalitiesToEqualitiesInfo+$fTransformerPBInequalitiesToEqualitiesInfo.$fObjValueBackwardTransformerPBUnconstrainInfo-$fObjValueForwardTransformerPBUnconstrainInfo&$fObjValueTransformerPBUnconstrainInfo&$fBackwardTransformerPBUnconstrainInfo%$fForwardTransformerPBUnconstrainInfo$fTransformerPBUnconstrainInfo$fBackwardTransformerWBO2PBInfo$fForwardTransformerWBO2PBInfo$fTransformerWBO2PBInfo$fEqPBQuadratizeInfo$fShowPBQuadratizeInfo"$fEqPBInequalitiesToEqualitiesInfo$$fShowPBInequalitiesToEqualitiesInfo$fEqPBUnconstrainInfo$fShowPBUnconstrainInfo$fEqWBO2PBInfo$fShowWBO2PBInfoIsing2QUBOInfoQUBO2IsingInfo PB2QUBOInfo PBAsQUBOInfo QUBO2PBInfoqubo2pbpbAsQUBOpb2qubo qubo2ising ising2qubo($fObjValueBackwardTransformerQUBO2PBInfo'$fObjValueForwardTransformerQUBO2PBInfo $fObjValueTransformerQUBO2PBInfo $fBackwardTransformerQUBO2PBInfo$fForwardTransformerQUBO2PBInfo$fTransformerQUBO2PBInfo)$fObjValueBackwardTransformerPBAsQUBOInfo($fObjValueForwardTransformerPBAsQUBOInfo!$fObjValueTransformerPBAsQUBOInfo!$fBackwardTransformerPBAsQUBOInfo $fForwardTransformerPBAsQUBOInfo$fTransformerPBAsQUBOInfo+$fObjValueBackwardTransformerQUBO2IsingInfo*$fObjValueForwardTransformerQUBO2IsingInfo#$fObjValueTransformerQUBO2IsingInfo#$fBackwardTransformerQUBO2IsingInfo"$fForwardTransformerQUBO2IsingInfo$fTransformerQUBO2IsingInfo+$fObjValueBackwardTransformerIsing2QUBOInfo*$fObjValueForwardTransformerIsing2QUBOInfo#$fObjValueTransformerIsing2QUBOInfo#$fBackwardTransformerIsing2QUBOInfo"$fForwardTransformerIsing2QUBOInfo$fTransformerIsing2QUBOInfo$fEqQUBO2PBInfo$fShowQUBO2PBInfo$fReadQUBO2PBInfo$fEqPBAsQUBOInfo$fShowPBAsQUBOInfo$fReadPBAsQUBOInfo$fEqQUBO2IsingInfo$fShowQUBO2IsingInfo$fReadQUBO2IsingInfo$fEqIsing2QUBOInfo$fShowIsing2QUBOInfo$fReadIsing2QUBOInfo MaxSAT2IPInfo SAT2IPInfo WBO2IPInfo PB2IPInfopb2ipwbo2ipsat2ip maxsat2ip$fBackwardTransformerPB2IPInfo$fForwardTransformerPB2IPInfo$fTransformerPB2IPInfo$fBackwardTransformerWBO2IPInfo$fForwardTransformerWBO2IPInfo$fTransformerWBO2IPInfo $fEqPB2IPInfo$fShowPB2IPInfo$fReadPB2IPInfo$fEqWBO2IPInfo$fShowWBO2IPInfoNAE3SAT2Max2SATInfoNAESAT2Max2SATInfoNAESAT2NAEKSATInfoNAESAT2SATInfoSAT2NAESATInfo NAEClauseNAESAT evalNAESAT evalNAEClause sat2naesat naesat2satnaesat2naeksatnaesat2max2satnae3sat2max2sat#$fBackwardTransformerSAT2NAESATInfo"$fForwardTransformerSAT2NAESATInfo$fTransformerSAT2NAESATInfo'$fBackwardTransformerNAESAT2NAEKSATInfo&$fForwardTransformerNAESAT2NAEKSATInfo$fTransformerNAESAT2NAEKSATInfo$fEqSAT2NAESATInfo$fShowSAT2NAESATInfo$fReadSAT2NAESATInfo$fEqNAESAT2NAEKSATInfo$fShowNAESAT2NAEKSATInfo$fReadNAESAT2NAEKSATInfoNAE3SAT2MaxCutInfoNAESAT2MaxCutInfoSAT2MaxCutInfo sat2maxcut naesat2maxcutnae3sat2maxcut'$fBackwardTransformerNAE3SAT2MaxCutInfo&$fForwardTransformerNAE3SAT2MaxCutInfo$fTransformerNAE3SAT2MaxCutInfo$fEqNAE3SAT2MaxCutInfo$fShowNAE3SAT2MaxCutInfo$fReadNAE3SAT2MaxCutInfo MIP2PBInfomip2pbaddMIP'$fObjValueBackwardTransformerMIP2PBInfo&$fObjValueForwardTransformerMIP2PBInfo$fObjValueTransformerMIP2PBInfo$fBackwardTransformerMIP2PBInfo$fTransformerMIP2PBInfo$fEqMIP2PBInfo$fShowMIP2PBInfoGCNF2MaxSATInfo gcnf2maxsat$$fBackwardTransformerGCNF2MaxSATInfo$fTransformerGCNF2MaxSATInfo$fEqGCNF2MaxSATInfo$fShowGCNF2MaxSATInfo$fReadGCNF2MaxSATInfoFunDef ValRational ValBitVecValBoolValUninterpreted VASortFun ExceptionError UnsupportedEApEValueFunTypeSortSSymSSymBoolSSymReal SSymBitVecSSymUninterpreted IndexNumeral IndexSymbol ssymAritysBoolsRealsBitVec declareSSym declareSort declareFSym declareFun declareConstassert assertNamedgetGlobalDeclarationssetGlobalDeclarationsexprSortcheckSATcheckSATAssumingvalSortevalFSymmodelGetAssertionsgetUnsatAssumptions getUnsatCore$fIsStringFSym$fExceptionException $fVASortFun->$fVASortFunSort$fIsOrdRelExprExpr$fIsEqRelExprExpr $fBooleanExpr$fIfThenElseExprExpr$fComplementExpr$fMonotoneBooleanExpr $fVAFunExpr $fShowIndex $fEqIndex $fOrdIndex $fShowFSym$fEqFSym $fOrdFSym $fShowSSym$fEqSSym $fOrdSSym $fShowSort$fEqSort $fOrdSort $fShowFDef$fShowException$fEqTheorySolverID$fOrdTheorySolverID$fEnumTheorySolverID$fBoundedTheorySolverID$fEqBVAtomNormalized$fOrdBVAtomNormalized $fEqValue $fOrdValue $fShowValue $fEqFunDef $fShowFunDefparseByteString cnfBuilderhPutCNF gcnfBuilderhPutGCNFqdimacsBuilder hPutQDimacs DenseBlock DenseMatrix primalVector primalMatrix dualMatrixBlock blockStructcostsmatricesmDimnBlock blockElemevalPrimalObjectiveevalDualObjective denseBlock denseMatrix diagBlock readDataFile writeDataFile parseDataparseSparseData renderDatarenderSparseData DualizeInfodualize $fBackwardTransformerDualizeInfo$fForwardTransformerDualizeInfo$fTransformerDualizeInfo$fEqDualizeInfo$fShowDualizeInfo$fReadDualizeInfo wcnfBuilderhPutWCNFpackageVersionsgitHashcompilationTimeSequentisValid getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameAugmentingPathAlternatingPathmaximumCardinalityMatching'$maximumWeightMaximumMatchingCompletexhicontainers-0.6.0.1Data.IntSet.InternalsizeData.Set.InternalfindLargestIntersectionSetTableemptyfromListfromSettoSettoListinsertdecomposeToBinaryProducts projectCases'base GHC.MaybeNothing*data-interval-1.3.1-DzrxZayOws3BSKFjzAq8gW Data.Interval lowerBound upperBoundnorm2sqboundsNthRootgraeffesMethodproperFraction'GHC.RealproperFraction truncate'truncateround'roundceilingfloorGHC.Numabssignumrootsbytestring-0.10.8.2 Data.ByteString.Builder.InternalBuilderPairData.Sequence.InternalSeqghc-prim GHC.ClassesOrdnewPriorityQueueBy#EqnEqn1Eqn0process-1.6.3.0System.Processproc Text.Read integer-gmpGHC.Integer.TypeInteger:~>~> increaseNB decreaseNB$$tightenToInteger GHC.TypesTrueFalse getNEdges^*constrPropagateSomeConstraintHandlerconstrReasonOfsvVarInc svConstrIncsvERWAStepSize ldWatches vdWatches vdEMAScaledvdWhenAssignedvdParticipated vdReasonedwatchLitwatchVar getNAssignedpbSplitClausePart backtrackToreasonOfrefineLBrefineUBenumMCSAssumptionsallMCSAssumptionsSGenAtomSGenTermdualRailEncodinggitHashQcompilationTimeQ