Îõ³h&$Õ @¬      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª« 3Custom functions to report error messages to users.7(c) 2011 National Institute of Aerospace / Galois, Inc.SafeA¬ copilot-core(Report an error due to a bug in Copilot.¬ copilot-core5Name of the function in which the error was detected. copilot-core5Name of the package in which the function is located.¬7(c) 2011 National Institute of Aerospace / Galois, Inc.Safe )*1ÌÚܾ copilot-coreÃImplementation of an array that uses type literals to store length. copilot-coreýSmart array constructor that only type checks if the length of the given list matches the length of the array at type level. copilot-coreReturn the elemts of an array.Safe)*Ìj copilot-coreType equality. If the value of x =~= y is  Just Refl, then the two types x and y are equal. copilot-corePropositional equality. copilot-core0Safe coercion, which requires proof of equality.  copilot-core Proof of propositional equality.  copilot-core Symmetry.  copilot-core Transitivity.  copilot-core Congruence.   Typing for Core.7(c) 2011 National Institute of Aerospace / Galois, Inc.Safe)*1ÁÂÃÉÌÙÚÜ ˜  copilot-core!A untyped type (no phantom type). copilot-coreÜA typed expression, from which we can obtain the two type representations used by Copilot: ! and . copilot-core£A simple, monomorphic representation of types that facilitates putting variables in heterogeneous lists and environments in spite of their types being different.! copilot-coreÐA Type representing the types of expressions or values handled by Copilot Core.¼Note that both arrays and structs use dependently typed features. In the former, the length of the array is part of the type. In the latter, the names of the fields are part of the type./ copilot-coreËA field in a struct. The name of the field is a literal at the type level.1 copilot-coreÂThe field of a struct, together with a representation of its type.3 copilot-coreØThe value of that is a product or struct, defined as a constructor with several fields.4 copilot-core2Returns the name of struct in the target language.5 copilot-core9Transforms all the struct's fields into a list of values.6 copilot-coreExtract the name of a field.7 copilot-coreÏExtract the name of an accessor (a function that returns a field of a struct).8 copilot-core+Return the length of an array from its type9 copilot-core8Return the total (nested) size of an array from its typeG copilot-core+Type equality, used to help type inference.-  !-+'",*)(#$%&./0123546789-!-+'",*)(#$%&.  98125/04367-Internal representation of Copilot operators.7(c) 2011 National Institute of Aerospace / Galois, Inc.Safe)*×Ü‚L copilot-coreTernary operators.N copilot-coreBinary operators.f copilot-coreUnary operators.e copilot-core,Array access/projection of an array element.} copilot-coreCasting operator.~ copilot-coreProjection of a struct field.3LMNZUTOPQRSVWXY[\]^_`abcdefghijklmnopqrstuvwxyz{|}~3fghijklmnopqrstuvwxyz{|}~NZUTOPQRSVWXY[\]^_`abcdeLM6Internal representation of Copilot stream expressions.7(c) 2011 National Institute of Aerospace / Galois, Inc.Safe)*ÉÜÍ copilot-core A untyped expression that carries the information about the type of the expression as a value, as opposed to exposing it at type level (using an existential).ƒ copilot-core6Internal representation of Copilot stream expressions.›The Core representation mimics the high-level Copilot stream, but the Core representation contains information about the types of elements in the stream. copilot-coreAn index for the drop operator.Ž copilot-coreÃA name of a trigger, an external variable, or an external function. copilot-coreA stream identifier.€‚ƒ„‰Š‹…†‡ˆŒŽŽƒ„‰Š‹…†‡ˆŒ€‚7(c) 2011 National Institute of Aerospace / Galois, Inc.Safe)*ÉÜu copilot-coreˆA Copilot specification is a list of streams, together with monitors on these streams implemented as observers, triggers or properties.– copilot-coreåA property, representing a boolean stream that is existentially or universally quantified over time.š copilot-coreÞA trigger, representing a function we execute when a boolean stream becomes true at a sample.Ÿ copilot-coreÚAn observer, representing a stream that we observe during interpretation at every sample.¤ copilot-core>A stream in an infinite succession of values of the same type.ôStream can carry different types of data. Boolean streams play a special role: they are used by other parts (e.g., š>) to detect when the properties being monitored are violated.‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©¤¥¦§¨©Ÿ ¡¢£š›œž‘’“”•–—˜™ 7Intermediate representation for Copilot specifications.7(c) 2011 National Institute of Aerospace / Galois, Inc.SafekŸ­®¯°±²³´µ¶·¸¹º»¼½  !.&%$#()*,"'-+/0123546789LMNedcba`_^]\[YXWVSRQPOTZUf~}|{zyxwvutsrqponmlkjigh‚€ƒŒˆ‡†…‹Š„‰Ž•”“‘’–™—˜šž›œŸ£¢ ¡¤©¨§¥¦ 7(c) 2011 National Institute of Aerospace / Galois, Inc.Safe)*ÉÜ\¾ copilot-core.Witness datatype for showing a value, used by ¿.À copilot-coreÙTarget language for showing a typed value. Used to adapt the representation of booleans.¿ copilot-coreShow a value. The representation depends on the type and the target language. Booleans are represented differently depending on the backend.Á copilot-coreShow Copilot Core type. copilot-core Turn a type into a show witness.ÀÃÄ¿ÁSafe)* 4Å copilot-coreÍCreate a unique stream name by prefixing the given ID by a lowercase letter "s".ª copilot-core"Pretty-print a Copilot expression.?The type is ignored, and only the expression is pretty-printed.Æ copilot-core#Pretty-print an untyped expression.?The type is ignored, and only the expression is pretty-printed.Ç copilot-corePretty-print a unary operation.È copilot-core Pretty-print a binary operation.É copilot-core!Pretty-print a ternary operation.Ê copilot-coreParenthesize two Ës, separated by an infix Ì.Í copilot-core Prefix a Ë by a Ì.Î copilot-core‚Pretty-print a Copilot stream as a case of a top-level function for streams of that type, by pattern matching on the stream name.Ï copilot-core8Pretty-print a Copilot trigger as a case of a top-level trigger4 function, by pattern matching on the trigger name.Ð copilot-core9Pretty-print a Copilot observer as a case of a top-level observer5 function, by pattern matching on the observer name.Ñ copilot-core9Pretty-print a Copilot property as a case of a top-level property5 function, by pattern matching on the property name.Ò copilot-core=Pretty-print a Copilot specification, in the following order:Streams definitionsTrigger definitionsObserver definitionsProperty definitions« copilot-core%Pretty-print a Copilot specification.ª««ªÓ    !"#$%&'()*+,-./0123456 788997:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„……†‡ˆ‰Š‹ŒlTRŽ‘’’“”•–——˜™šš›œžžŸ ¡¢¢£¤¥¦§¨©ª«¬­®-­®.­®/­®0ª«¯­°1­°2­°3­°4­°±­°²­°³­°´­°µ­°¶­°· ¸ ¹ º » ¼ ½ ¾¿ÀÁÂÃÄÅÆÇ­ÈÉÊËÌÍÎÏÐ(copilot-core-3.14-2t1YjMGv00AJZeQTZf4gvOCopilot.Core.Type.ArrayCopilot.Core.Type.EqualityCopilot.Core.TypeCopilot.Core.OperatorsCopilot.Core.ExprCopilot.Core.SpecCopilot.Core.PrettyPrintCopilot.Core.Error Copilot.CoreCopilot.Core.Type.ShowArrayarray arrayelems $fShowArray EqualType=~=EqualReflcoercereflsymmtranscongUType uTypeTypeTypedtypeOf simpleType SimpleTypeSBoolSInt8SInt16SInt32SInt64SWord8SWord16SWord32SWord64SFloatSDoubleSArraySStructTypeBoolInt8Int16Int32Int64Word8Word16Word32Word64FloatDoubleStructFieldValuetypenametoValues fieldname accessornametylengthtysize $fShowField $fTypedArray $fTypedDouble $fTypedFloat $fTypedWord64 $fTypedWord32 $fTypedWord16 $fTypedWord8 $fTypedInt64 $fTypedInt32 $fTypedInt16 $fTypedInt8 $fTypedBool$fEqSimpleType$fTestEqualityTYPEType$fEqualTypeType$fShowt $fEqUTypeOp3MuxOp2AndOrAddSubMulModDivFdivPowLogbAtan2EqNeLeGeLtGtBwAndBwOrBwXorBwShiftLBwShiftRIndexOp1NotAbsSignRecipExpSqrtLogSinTanCosAsinAtanAcosSinhTanhCoshAsinhAtanhAcoshCeilingFloorBwNotCastGetFieldUExpr uExprType uExprExprExprConstDropLocalVar ExternVarLabelDropIdxNameIdSpec specStreams specObservers specTriggersspecPropertiesProperty propertyName propertyExprTrigger triggerName triggerGuard triggerArgsObserver observerName observerExprobserverExprTypeStreamstreamId streamBuffer streamExprstreamExprTypeppExpr prettyPrint impossibleghc-prim GHC.TypesIntbaseGHC.IntWordGHC.Word byteSwap64 byteSwap32 byteSwap16 bitReverse8 bitReverse64 bitReverse32 bitReverse16ShowWit showWithTypeShowTypeshowTypeshowWitCHaskellstrmNameppUExprppOp1ppOp2ppOp3ppInfixpretty-1.1.3.6Text.PrettyPrint.HughesPJDocGHC.BaseStringppPrefixppStream ppTrigger ppObserver ppPropertyppSpec