H >q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop qrstuv- ?A logical, arithmetic, comparative, or conditional expression.  !"#$%&'()*A mutable variable. +,-./0-  !"#$%&'()*+,-./0-#"! *+-,()%&'$  ./0-  #"!  !"#$%&'&'())*++,-./00wxyz{|}~1#Verify a program with k-induction. 1Set of statements containing only one assertion. Remove all assertions. *Ensure all assertions are uniquely labed. Paths of all assertions. (Trim all unneeded stuff from a program. Verify a trimmed program.  k-induction. Check induction step. Check induction basis. Insert new input variables. 5Creates a new boolean variable. Use for assertions. 1112Generate C code. 222:345;The Stmt monad holds variable declarations and statements. 6 True term. 7 False term. 8Arbitrary constants. 9Logical negation. : Logical AND. ; Logical OR. <"The conjunction of a E Bool list. ="The disjunction of a E Bool list. >1True iff the predicate is true for all elements. ?0True iff the predicate is true for any element. @Logical implication. AEqual. B Not equal. C Less than. DGreater than. ELess than or equal. FGreater than or equal. G$Returns the minimum of two numbers. H*Returns the minimum of a list of numbers. I$Returns the maximum of two numbers. J*Returns the maximum of a list of numbers. KLimits between min and max. LMultiplication. MFloating point division. NInteger division. OModulo. P;Linear interpolation and extrapolation between two points. Q3References a variable to be used in an expression (). RConditional expression.  mux test onTrue onFalse SLabels a statement. G Labels are used in counter examples to trace the program execution. ] And assertion names, and hence counter example trace file names, are produce from labels. T5Creates a new hierarchical scope for variable names. ULCreates a new hierarchical scope and labels a statement with the same name. VCInput variable declaration. Input variables are initialized to 0. WBoolean variable declaration. X7Boolean variable declaration and immediate assignment. YInt variable declaration. Z3Int variable declaration and immediate assignment. [Float variable declaration. \5Float variable declaration and immediate assignment. ]Increments an E Int. ^Decrements an E Int. _!Assert that a condition is true. `)Declare an assumption condition is true. Q Assumptions expressions must contain variables directly or indirectly related H to the assertion under verification, otherwise they will be ignored. aConditional if-else. b!Conditional if without the else. cCondition case statement. dVerify a program. "^ verify pathToYices maxK program eGenerate C code. 8$%*-3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde8*%$-678Q9:;<=?>@ABCEDFGHIJKLMNORP5TSUWXYZ[\V34abc]^_`de334456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde 6Computes the greatest common divison of two integers. < Returns true if the computation is done, and the result. A top level wrapper for gcd'. f,Build the gcdMain code (i.e. gcd.c, gcd.h). g(A rolling counter verification example. h Verify the g example. iArbiter specification. jAn arbiter implementation. k#An another arbiter implementation. l$Yet another arbiter implementation. m?Binding an arbiter implemenation to the arbiter specification. n.Verify the different arbiter implementations. o-Build the different arbiter implementations. pRun all examples. fghijklmnop fghimjklnop fghijklmnop       !"#$%&' ()*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg56hijklmnopqrstuvwxyz{|}~9 improve-0.1.0Language.ImProve.TreeLanguage.ImProve.CoreLanguage.ImProve.VerifyLanguage.ImProve.CodeLanguage.ImProveLanguage.ImProve.ExamplesTreeLeafBranchtreeVarInfoConstFloatIntBool StatementNullLabelAssumeAssertSequence AssignFloat AssignInt AssignBoolEMuxGeLeGtLtEqOrAndNotModDivMulSubAddRefNumEAllEzeroconst'PathNamepathNameVPathNamevarInfostmtVarsexprVarsverifycodeAssign<==Stmttruefalseconstantnot_&&.||.and_or_all_any_-->==./=.<.>.<=.>=.min_minimum_max_maximum_limit*./.div_mod_linearrefmux|-|=|=-inputboolbool'intint'floatfloat'incrdecrassertassumeifelseif_case_buildGCDcounter verifyCounter arbiterSpecarbiter1arbiter2arbiter3arbiterverifyArbiters buildArbitersrunAlllabelisBranch singleTree mergeTrees insertTreefind'TraceLabel'Branch'Assert'Assign'Input'Cycle'Init'EnvnextIdvarcmdsassertstraceVarYResultProblemFailPasstrimAssertionsremoveAssertionslabelAssertions assertions trimProgram requiredVars modifiedVars verifyProgramcheck checkStep checkBasisinputsresultevalStmtevalExpr evalConst evalConst'initEnvaddVar'addVar newBoolVaraddCmdaddTracegetVar writeTraceindentcodeStmtcodeExprindent' codeVariables showConst showConstTypegetputgetPath statementgcd'gcdMain