Io?u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst uvwxyz1{ ?A logical, arithmetic, comparative, or conditional expression.  !"#$%&'()*An untyped variable. +,-.A mutable variable. /01230  !"#$%&'()*+,-./01230"! ./*-,+10()$%&'#   230   "!  !"#$%&'%&'())*-,++,-.//01234Generate C code. |}~4445=Reduces a program only to assignments of a certain variable. 55506#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. 666<789;The Stmt monad holds variable declarations and statements. : True term. ; False term. <Arbitrary constants. =Logical negation. > Logical AND. ? Logical OR. @"The conjunction of a E Bool list. A"The disjunction of a E Bool list. B1True iff the predicate is true for all elements. C0True iff the predicate is true for any element. DLogical implication. EEqual. F Not equal. G Less than. HGreater than. ILess than or equal. JGreater than or equal. K$Returns the minimum of two numbers. L*Returns the minimum of a list of numbers. M$Returns the maximum of two numbers. N*Returns the maximum of a list of numbers. OLimits between min and max. PMultiplication. QFloating point division. RInteger division. SModulo. T;Linear interpolation and extrapolation between two points. U3References a variable to be used in an expression (). VConditional expression.  mux test onTrue onFalse W1Labels a statement and creates a variable scope. 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. XCInput variable declaration. Input variables are initialized to 0. YGlobal variable declaration. ZBoolean variable declaration. [7Boolean variable declaration and immediate assignment. \Int variable declaration. ]3Int variable declaration and immediate assignment. ^Float variable declaration. _5Float variable declaration and immediate assignment. `Increments an E Int. aDecrements an E Int. b!Assert that a condition is true. c)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. dConditional if-else. e!Conditional if without the else. fCondition case statement. ghVerify a program. ! verify pathToYices maxK program iGenerate C code. 8#$.1789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi8.$#1:;<U=>?@ACBDEFGIHJKLMNOPQRSVT9WZ[\]^_XY78defg`abchi37889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi 6Computes the greatest common divison of two integers. < Returns true if the computation is done, and the result. A top level wrapper for gcd'. j,Build the gcdMain code (i.e. gcd.c, gcd.h). k(A rolling counter verification example. l Verify the k example. mArbiter specification. nAn arbiter implementation. o#An another arbiter implementation. p$Yet another arbiter implementation. q?Binding an arbiter implemenation to the arbiter specification. r.Verify the different arbiter implementations. s-Build the different arbiter implementations. tRun all examples. jklmnopqrst jklmqnoprst jklmnopqrst       !"#$%&'()*+,-./01234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk;9lmnopqrstuvwxyz{|}~= improve-0.1.6Language.ImProve.TreeLanguage.ImProve.CoreLanguage.ImProve.CodeLanguage.ImProve.NarrowLanguage.ImProve.VerifyLanguage.ImProveLanguage.ImProve.ExamplesTreeLeafBranchtreevarInfoVarInfoConstFloatIntBool StatementNullLabelAssumeAssertSequenceAssignEMuxGeLeGtLtEqOrAndNotModDivMulSubAddRefNumEAllEzeroconst'untypePathNamepathNameUVUVFloatUVIntUVBoolVPathNamestmtVarsexprVarscodenarrowverify<==Stmttruefalseconstantnot_&&.||.and_or_all_any_-->==./=.<.>.<=.>=.min_minimum_max_maximum_limit*./.div_mod_linearrefmux-|inputglobalboolbool'intint'floatfloat'incrdecrassertassumeifelseif_case_==>buildGCDcounter verifyCounter arbiterSpecarbiter1arbiter2arbiter3arbiterverifyArbiters buildArbitersrunAlllabelisBranch singleTree mergeTrees insertTreefind'VarInfo'codeStmtindentindent' codeVariables showConst showConstTypeconstantAssignslastConstAssign timerRanges assignedVarTraceLabel'Branch'Assert'Assign'Input'Cycle'Init'EnvnextIdvarcmdsassertstraceVarYResultProblemFailPasstrimAssertionsremoveAssertionslabelAssertions assertions trimProgram requiredVars modifiedVars verifyProgramcheck checkStep checkBasisinputsresultevalStmtevalExpr evalConst evalConst'initEnvaddVar'addVar newBoolVaraddCmdaddTracegetVar writeTraceCasegetputgetPath statementgcd'gcdMain