úΞL°Ą      !"#$%&'()*+,-./01234 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ SafewĄĒĢĪĨͧĻNone>?V ŌĐ is idempotent for any type:(idempotentOnArbitrary (id :: Int -> Int)Š6, given any input, is idempotent for any type as well:7\int -> idempotentOnArbitrary (const int :: Int -> Int)None>?VždThe function produces valid output when the input is generated as specified by the given generator.CThe function produces valid output when the input is generated by genValidCThe function produces valid output when the input is generated by  genUncheckedCThe function produces valid output when the input is generated by  arbitrary    None>?V4The given generator generates only valid data points6The given generator generates only invalid data pointsNone>?V&u Associative(\star) \quad\equiv\quad \forall a, b, c: (a \star b) \star c = a \star (b \star c) &associative ((*) :: Int -> Int -> Int)&associative ((+) :: Int -> Int -> Int)1associativeOnArbitrary ((*) :: Int -> Int -> Int)1associativeOnArbitrary ((+) :: Int -> Int -> Int)None>?Vl^ Commutative(\star) \quad\equiv\quad \forall a, b: a \star b = b \star a /commutative ((+) :: Double -> Double -> Double)/commutative ((*) :: Double -> Double -> Double)&commutative ((+) :: Int -> Int -> Int)&commutative ((*) :: Int -> Int -> Int)1commutativeOnArbitrary ((+) :: Int -> Int -> Int)1commutativeOnArbitrary ((*) :: Int -> Int -> Int)None>?V4f [ LeftIdentity(\star, \doteq, b) \quad\equiv\quad \forall a: (b \star a) \doteq a =leftIdentityOnValid (flip ((^) :: Double -> Int -> Double)) 10leftIdentity (flip ((^) :: Int -> Int -> Int)) 1;leftIdentityOnArbitrary (flip ((^) :: Int -> Int -> Int)) 1 \ RightIdentity(\star, \doteq, b) \quad\equiv\quad \forall a: (a \star b) \doteq a #7rightIdentityOnValid ((^) :: Double -> Int -> Double) 1$*rightIdentity ((^) :: Int -> Int -> Int) 1%5rightIdentityOnArbitrary ((^) :: Int -> Int -> Int) 1&} Identity(\star, \doteq, b) \quad\equiv\quad LeftIdentity(\star, \doteq, b) \wedge RightIdentity(\star, \doteq, b) '5identityOnValid ((*) :: Double -> Double -> Double) 15identityOnValid ((+) :: Double -> Double -> Double) 0(%identity ((*) :: Int -> Int -> Int) 1%identity ((+) :: Int -> Int -> Int) 0)0identityOnArbitrary ((*) :: Int -> Int -> Int) 10identityOnArbitrary ((+) :: Int -> Int -> Int) 0A binary operation An equalityA candidate left-identity An elementA binary operation An equalityA candidate left-identityA binary operationA candidate left-identity A binary operation An equalityA candidate right-identity An element!A binary operation An equalityA candidate right-identity"A binary operationA candidate right-identity !"#$%&'() !"#$%&'()None>?V5> !"#$%&'() !"#$%&'()None66*+,-.*+,.-None>?V?ū/M Antireflexive(\prec) \quad\equiv\quad \forall a: \neg (a \prec a) 18antireflexivityOnValid ((<) :: Double -> Double -> Bool)9antireflexivityOnValid ((/=) :: Double -> Double -> Bool)8antireflexivityOnValid ((>) :: Double -> Double -> Bool)2+antireflexivity ((<) :: Int -> Int -> Bool),antireflexivity ((/=) :: Int -> Int -> Bool)+antireflexivity ((>) :: Int -> Int -> Bool)36antireflexivityOnArbitrary ((<) :: Int -> Int -> Bool)7antireflexivityOnArbitrary ((/=) :: Int -> Int -> Bool)6antireflexivityOnArbitrary ((>) :: Int -> Int -> Bool)/ A relation An element/0123/0123 None>?VXT4 Antisymmetric(\prec, \doteq) \quad\equiv\quad \forall a, b: ((a \prec b) \wedge (b \prec a)) \Rightarrow (a \doteq b) 75antisymmetryOnValid ((>) :: Double -> Double -> Bool)6antisymmetryOnValid ((>=) :: Double -> Double -> Bool)6antisymmetryOnValid ((<=) :: Double -> Double -> Bool)5antisymmetryOnValid ((<) :: Double -> Double -> Bool)JantisymmetryOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)JantisymmetryOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)IantisymmetryOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)8(antisymmetry ((>) :: Int -> Int -> Bool))antisymmetry ((>=) :: Int -> Int -> Bool))antisymmetry ((<=) :: Int -> Int -> Bool)(antisymmetry ((<) :: Int -> Int -> Bool)=antisymmetry (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)=antisymmetry (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)<antisymmetry (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)>antisymmetry ((\x y -> even x && odd y) :: Int -> Int -> Bool)93antisymmetryOnArbitrary ((>) :: Int -> Int -> Bool)4antisymmetryOnArbitrary ((>=) :: Int -> Int -> Bool)4antisymmetryOnArbitrary ((<=) :: Int -> Int -> Bool)3antisymmetryOnArbitrary ((<) :: Int -> Int -> Bool)HantisymmetryOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)HantisymmetryOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)GantisymmetryOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)IantisymmetryOnArbitrary ((\x y -> even x && odd y) :: Int -> Int -> Bool)4 A relationAn equivalence relation Two elements456789456789 None>?Vjį:D Reflexive(\prec) \quad\equiv\quad \forall a: (a \prec a) <5reflexivityOnValid ((<=) :: Double -> Double -> Bool)5reflexivityOnValid ((==) :: Double -> Double -> Bool)5reflexivityOnValid ((>=) :: Double -> Double -> Bool)IreflexivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)IreflexivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)HreflexivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)=(reflexivity ((<=) :: Int -> Int -> Bool)(reflexivity ((==) :: Int -> Int -> Bool)(reflexivity ((>=) :: Int -> Int -> Bool)<reflexivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)<reflexivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool);reflexivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)>3reflexivityOnArbitrary ((<=) :: Int -> Int -> Bool)3reflexivityOnArbitrary ((==) :: Int -> Int -> Bool)3reflexivityOnArbitrary ((>=) :: Int -> Int -> Bool)GreflexivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)GreflexivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)FreflexivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool): A relation An element:;<=>:;<=> None>?VqÆ?c Symmetric(\prec) \quad\equiv\quad \forall a, b: (a \prec b) \Leftrightarrow (b \prec a) A2symmetryOnValid ((==) :: Double -> Double -> Bool)2symmetryOnValid ((/=) :: Double -> Double -> Bool)B%symmetry ((==) :: Int -> Int -> Bool)%symmetry ((/=) :: Int -> Int -> Bool)C0symmetryOnArbitrary ((==) :: Int -> Int -> Bool)0symmetryOnArbitrary ((/=) :: Int -> Int -> Bool)? A relation Two elements?@ABC?@ABC None>?VŠ Dx Transitive(\prec) \quad\equiv\quad \forall a, b, c: ((a \prec b) \wedge (b \prec c)) \Rightarrow (a \prec c) F5transitivityOnValid ((>) :: Double -> Double -> Bool)6transitivityOnValid ((>=) :: Double -> Double -> Bool)6transitivityOnValid ((==) :: Double -> Double -> Bool)6transitivityOnValid ((<=) :: Double -> Double -> Bool)5transitivityOnValid ((<) :: Double -> Double -> Bool)JtransitivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)JtransitivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)ItransitivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)G(transitivity ((>) :: Int -> Int -> Bool))transitivity ((>=) :: Int -> Int -> Bool))transitivity ((==) :: Int -> Int -> Bool))transitivity ((<=) :: Int -> Int -> Bool)(transitivity ((<) :: Int -> Int -> Bool)=transitivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)=transitivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)<transitivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)H3transitivityOnArbitrary ((>) :: Int -> Int -> Bool)4transitivityOnArbitrary ((>=) :: Int -> Int -> Bool)4transitivityOnArbitrary ((==) :: Int -> Int -> Bool)4transitivityOnArbitrary ((<=) :: Int -> Int -> Bool)3transitivityOnArbitrary ((<) :: Int -> Int -> Bool)HtransitivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)HtransitivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)GtransitivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)D A relationThree elementsDEFGHDEFGHNone>?VŠ‹/0123456789:;<=>?@ABCDEFGH:;<=>DEFGH456789/0123?@ABC None>?V‘I$shrinkPreservesValidOnGenValid (:[])J(shrinkPreservesInvalidOnGenInvalid (:[])K"shrinkValidPreservesValid (pure 5)L8shrinkInvalidPreservesInvalid (pure (1/0) :: Gen Double)MAshrinkingStaysValid (pure 5 :: Gen Double) (\d -> [d - 1, d - 2])N6shrinkingStaysInvalid (pure (1/0) :: Gen Double) (:[])O(shrinkingPreserves (pure 5) (:[]) (== 5)IJKLMNOIJKLMNOSafe>?V’”P?A class of types that are the result of functions that can failPQRPQRPQRNone>?V”ģXĐe is its own inverse function for every type: prop> inverseFunctionsOnArbitrary id (id :: Int -> Int)UVWXYZ[\]^_`abcdUVWXYZ[\]^_`abcdNone>?V—yhCequivalentOnArbitrary ((* 2) . (+ 1)) ((+ 2) . (* 2) :: Int -> Int)l5equivalentOnArbitrary2 (+) ((+) :: Int -> Int -> Int)$efghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ$efghijklmnpoqrtsuvxwyz|{}~€‚„ƒ…†‡ˆNone>?VĶ* ‰FThe function succeeds if the input is generated by the given generatorŠ3The function succeeds if the input is generated by genValid‹3The function succeeds if the input is generated by  genUncheckedŒ3The function succeeds if the input is generated by  arbitraryCThe function fails if the input is generated by the given generatorŽ0The function fails if the input is generated by  genInvalid,The function produces output that satisfies isValid@ if it is given input that is generated by the given generator.,The function produces output that satisfies isValid, if it is given input that is generated by  arbitrary.‘,The function produces output that satisfies isValid, if it is given input that is generated by  arbitrary.’,The function produces output that satisfies isValid, if it is given input that is generated by  genUnchecked.‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‰Š‹Œ“”•–Ž—˜‘’™š›œžŸ None>?V§B\ UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ \ ‰Š‹Œ“”•–Ž—˜‘’™š›œžŸ efghijklmnpoqrtsuvxwyz|{}~€‚„ƒ…†‡ˆUVWXYZ[\]^_`abcdNone>?VŠzËŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞß  !"#$%&'()*+,/0123456789:;<=>?@ABCDEFGHPQRUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ –*+, PQR‰Š‹Œ“”•–Ž—˜‘’™š›œžŸ efghijkl…†‡ˆmnpoqrtsuvxwyz|{}~€‚„ƒUVWXYZ[\]^_`abcd:;<=>DEFGH456789/0123?@ABC !"#$%&'()ā !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e fghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂĀÁÃĀÁÄĀÁÅĀÁÆĀÁĮČÉĘČÉĘČÉËČÉĖČÉÍČÉÎČÉÏČÉÐČÉŅČÉŌČÉÓČÉÔČÉÕČÉÖČÉŨČÉØČÉŲČÉÚČÉÛČÉÜČÉÝÞßāÞßáÞßâÞßãÞßäÞßåÞßæÞßįÞßčÞßéÞßęÞßëÞßėÞßíÞßîÞßïÞßðÞßņÞßōÞßóÞßôÞßõÞßöÞßũÞßøÞßųÞßúÞßûü3genvalidity-property-0.2.0.0-IecHJPqs3GsGuqgvhD6sRp#Test.Validity.Functions.Idempotence Test.Validity.Functions.Validity"Test.Validity.GenValidity.Property&Test.Validity.Operations.Associativity&Test.Validity.Operations.Commutativity!Test.Validity.Operations.IdentityTest.Validity.Property.Utils'Test.Validity.Relations.Antireflexivity$Test.Validity.Relations.Antisymmetry#Test.Validity.Relations.Reflexivity Test.Validity.Relations.Symmetry$Test.Validity.Relations.Transitivity Test.Validity.Shrinking.PropertyTest.Validity.TypesTest.Validity.Functions.Inverse#Test.Validity.Functions.EquivalenceTest.Validity.Functions.CanFailPaths_genvalidity_propertyTest.Validity.OperationsTest.Validity.RelationsTest.Validity.FunctionsTest.Validity.PropertyidempotentOnGenidempotentOnValid idempotentidempotentOnArbitraryproducesValidsOnGenproducesValidsOnValids producesValidproducesValidsOnArbitraryproducesValidsOnGens2producesValidsOnValids2producesValid2producesValidsOnArbitrary2producesValidsOnGens3producesValidsOnValids3producesValid3producesValidsOnArbitrary3genGeneratesValidgenGeneratesInvalidassociativeOnGensassociativeOnValids associativeassociativeOnArbitrarycommutativeOnGenscommutativeOnValids commutativecommutativeOnArbitraryleftIdentityOnElemWithEqualityleftIdentityOnGenWithEqualityleftIdentityOnGenleftIdentityOnValid leftIdentityleftIdentityOnArbitraryrightIdentityOnElemWithEqualityrightIdentityOnGenWithEqualityrightIdentityOnGenrightIdentityOnValid rightIdentityrightIdentityOnArbitrary identityOnGenidentityOnValididentityidentityOnArbitraryforAllUnchecked forAllValid forAllInvalid===><==>antireflexiveOnElemantireflexivityOnGenantireflexivityOnValidantireflexivityantireflexivityOnArbitrary antisymmetricOnElemsWithEqualityantisymmetryOnGensWithEqualityantisymmetryOnGensantisymmetryOnValid antisymmetryantisymmetryOnArbitraryreflexiveOnElemreflexivityOnGenreflexivityOnValid reflexivityreflexivityOnArbitrarysymmetricOnElemssymmetryOnGenssymmetryOnValidsymmetrysymmetryOnArbitrarytransitiveOnElemstransitivityOnGenstransitivityOnValid transitivitytransitivityOnArbitraryshrinkPreservesValidOnGenValid"shrinkPreservesInvalidOnGenInvalidshrinkValidPreservesValidshrinkInvalidPreservesInvalidshrinkingStaysValidshrinkingStaysInvalidshrinkingPreservesCanFail hasFailedresultIfSucceeded$fCanFailEither$fCanFailMaybeinverseFunctionsOnGeninverseFunctionsOnValidinverseFunctionsinverseFunctionsOnArbitrary$inverseFunctionsIfFirstSucceedsOnGen&inverseFunctionsIfFirstSucceedsOnValidinverseFunctionsIfFirstSucceeds*inverseFunctionsIfFirstSucceedsOnArbitrary%inverseFunctionsIfSecondSucceedsOnGen'inverseFunctionsIfSecondSucceedsOnValid inverseFunctionsIfSecondSucceeds+inverseFunctionsIfSecondSucceedsOnArbitraryinverseFunctionsIfSucceedOnGen inverseFunctionsIfSucceedOnValidinverseFunctionsIfSucceed$inverseFunctionsIfSucceedOnArbitraryequivalentOnGenequivalentOnValid equivalentequivalentOnArbitraryequivalentOnGens2equivalentOnValids2 equivalent2equivalentOnArbitrary2 equivalentWhenFirstSucceedsOnGen"equivalentWhenFirstSucceedsOnValid&equivalentWhenFirstSucceedsOnArbitraryequivalentWhenFirstSucceeds"equivalentWhenFirstSucceedsOnGens2$equivalentWhenFirstSucceedsOnValids2'equivalentWhenFirstSucceedsOnArbitrary2equivalentWhenFirstSucceeds2!equivalentWhenSecondSucceedsOnGen#equivalentWhenSecondSucceedsOnValid'equivalentWhenSecondSucceedsOnArbitraryequivalentWhenSecondSucceeds#equivalentWhenSecondSucceedsOnGens2%equivalentWhenSecondSucceedsOnValids2(equivalentWhenSecondSucceedsOnArbitrary2equivalentWhenSecondSucceeds2equivalentWhenSucceedOnGenequivalentWhenSucceedOnValidequivalentWhenSucceed equivalentWhenSucceedOnArbitraryequivalentWhenSucceedOnGens2equivalentWhenSucceedOnValids2!equivalentWhenSucceedOnArbitrary2equivalentWhenSucceed2equivalentOnGens3equivalentOnValids3 equivalent3equivalentOnArbitrary3 succeedsOnGensucceedsOnValidsucceedssucceedsOnArbitrary failsOnGenfailsOnInvalidvalidIfSucceedsOnGenvalidIfSucceedsOnValidvalidIfSucceedsOnArbitraryvalidIfSucceedssucceedsOnGens2succeedsOnValids2 succeeds2succeedsOnArbitrary2 failsOnGens2failsOnInvalid2validIfSucceedsOnGens2validIfSucceedsOnValids2validIfSucceeds2validIfSucceedsOnArbitrary2validIfSucceedsOnGens3validIfSucceedsOnValids3validIfSucceeds3validIfSucceedsOnArbitrary3version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.BaseidconstMonoidmemptymappendmconcat'validity-0.5.0.0-KUXfF57kEp8ANLGKT9YxF9 Data.Validity Validation unValidationValidationChainLocationViolatedValidityvalidateisValidtrivialValidationcheckdeclareinvalidvalidannotatedelveconstructValidconstructValidUnsafe checkValidityprettyValidation isInvalid*genvalidity-0.5.0.0-CmiJeYKTkPHEJ5oO12OR7lData.GenValidityuncheckedSubtermsuncheckedRecursivelyShrinkgShrinkUnchecked genListOf arbPartition genSplit4 genSplit3genSplitupToshrinkT3shrinkT2 GenUnchecked genUncheckedshrinkUncheckedGenValidgenValid shrinkValid GenInvalid genInvalid shrinkInvalid GGenUnchecked gGenUncheckedGUncheckedRecursivelyShrinkgUncheckedRecursivelyShrinkGUncheckedSubtermsgUncheckedSubtermsGUncheckedSubtermsInclgUncheckedSubtermsIncl