úÎC 9ío      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn opqrst- ?A logical, arithmetic, comparative, or conditional expression.  !"#$%&'()*A mutable variable. +,-./0-  !"#$%&'()*+,-./0-#"! *+-,()%&'$  ./0-  #"!  !"#$%&'&'())*++,-./0/uvwxyz{|}~€‚ƒ„…†‡ˆ‰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. £¤¥¦§¨©2228345;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. @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 S1Creates a hierarchical scope for variable names. TYLabels a statement. Labels are used in counter examples to trace the program execution. W And assertion names, and hence counter example file names, are produce from labels. «¬­®UCInput variable declaration. Input variables are initialized to 0. VBoolean variable declaration. W7Boolean variable declaration and immediate assignment. XInt variable declaration. Y3Int variable declaration and immediate assignment. ZFloat 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. `Conditional if-else. a!Conditional if without the else. bVerify a program. "^ verify pathToYices maxK program cGenerate C code. 6$%*-3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc6*%$-678Q9:;<=?>@ABCEDFGHIJKLMNORP5STVWXYZ[U34`a\]^_bc134456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc ±6Computes the greatest common divison of two integers. < Returns true if the computation is done, and the result. ²A top level wrapper for gcd'. d,Build the gcdMain code (i.e. gcd.c, gcd.h). e(A rolling counter verification example. f Verify the e example. gArbiter specification. hAn arbiter implementation. i#An another arbiter implementation. j$Yet another arbiter implementation. k?Binding an arbiter implemenation to the arbiter specification. l.Verify the different arbiter implementations. m-Build the different arbiter implementations. nRun all examples. defghijklmn defgkhijlmn defghijklmn³       !"#$%&' ()*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde56fghijklmnopXqrstuvwxyz{|}~~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¢¥¦§¨9©ª«€¬–­®¯ improve-0.0.8Language.ImProve.TreeLanguage.ImProve.CoreLanguage.ImProve.VerifyLanguage.ImProve.CodeLanguage.ImProveLanguage.ImProve.ExamplesTreeLeafBranchtreeVarInfoConstFloatIntBool StatementNullLabelAssumeAssertSequence AssignFloat AssignInt AssignBoolEMuxGeLeGtLtEqOrAndNotModDivMulSubAddRefNumEAllEzeroconst'PathNamepathNameVPathNamevarInfostmtVarsexprVarsverifycodeAssign<==Stmttruefalseconstantnot_&&.||.and_or_all_any_imply==./=.<.>.<=.>=.min_minimum_max_maximum_limit*./.div_mod_linearrefmuxscopelabelinputboolbool'intint'floatfloat'incrdecrassertassumeifelseif_buildGCDcounter verifyCounter arbiterSpecarbiter1arbiter2arbiter3arbiterverifyArbiters buildArbitersrunAllisBranch singleTree mergeTrees insertTreefind'TraceLabel'Branch'Assert'Assign'Input'Cycle'Init'EnvnextIdvarcmdsassertstraceVarYResultProblemFailPasstrimAssertionsremoveAssertionslabelAssertions assertions trimProgram requiredVars verifyProgramcheck checkStep checkBasisinputsresultevalStmtevalExpr evalConst evalConst'initEnvaddVar'addVar newBoolVaraddCmdaddTracegetVar writeTraceindentcodeStmtcodeExprindent' codeVariables showConst showConstTypegetputgetPath statementgcd'gcdMain