mirror of
https://github.com/GaloisInc/cryptol.git
synced 2024-12-26 09:25:56 +03:00
Merge remote-tracking branch 'origin/master' into literal-class
# Conflicts: # tests/mono-binds/test04.icry.stdout # tests/regression/check01.icry.stdout # tests/regression/check16-tab.icry.stdout # tests/regression/check16.icry.stdout # tests/regression/check21.icry.stdout # tests/regression/check22.icry.stdout
This commit is contained in:
commit
e579113d05
@ -14,7 +14,14 @@ else
|
|||||||
TESTS=("$@")
|
TESTS=("$@")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CRY=$(find dist-newstyle -name cryptol -type f)
|
GHC_VERSION=$(ghc --numeric-version)
|
||||||
|
|
||||||
|
if [ ${GHC_VERSION}x == "x" ]; then
|
||||||
|
echo Failed to guess version of GHC.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CRY=$(find dist-newstyle -name cryptol -type f | grep $GHC_VERSION)
|
||||||
|
|
||||||
cabal new-run cryptol-test-runner -- -c $CRY --ignore-expected ${TESTS[*]}
|
cabal new-run cryptol-test-runner -- -c $CRY --ignore-expected ${TESTS[*]}
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ subsumes _ _ = False
|
|||||||
|
|
||||||
data Warning = DefaultingKind (P.TParam Name) P.Kind
|
data Warning = DefaultingKind (P.TParam Name) P.Kind
|
||||||
| DefaultingWildType P.Kind
|
| DefaultingWildType P.Kind
|
||||||
| DefaultingTo Doc Type
|
| DefaultingTo TVarInfo Type
|
||||||
deriving (Show, Generic, NFData)
|
deriving (Show, Generic, NFData)
|
||||||
|
|
||||||
-- | Various errors that might happen during type checking/inference
|
-- | Various errors that might happen during type checking/inference
|
||||||
@ -208,7 +208,7 @@ instance PP (WithNames Warning) where
|
|||||||
text "Assuming _ to have" <+> P.cppKind k
|
text "Assuming _ to have" <+> P.cppKind k
|
||||||
|
|
||||||
DefaultingTo d ty ->
|
DefaultingTo d ty ->
|
||||||
text "Defaulting" <+> d $$ text "to" <+> ppWithNames names ty
|
text "Defaulting" <+> tvarDesc d $$ text "to" <+> ppWithNames names ty
|
||||||
|
|
||||||
instance PP (WithNames Error) where
|
instance PP (WithNames Error) where
|
||||||
ppPrec _ (WithNames err names) =
|
ppPrec _ (WithNames err names) =
|
||||||
@ -297,7 +297,7 @@ instance PP (WithNames Error) where
|
|||||||
<+> text "is ambiguous.")
|
<+> text "is ambiguous.")
|
||||||
$$ text "Arising from:"
|
$$ text "Arising from:"
|
||||||
$$ nest 2 (vcat [ text "*" <+> var v | v <- vs ])
|
$$ nest 2 (vcat [ text "*" <+> var v | v <- vs ])
|
||||||
where var (TVFree _ _ _ d) = d
|
where var (TVFree _ _ _ d) = tvarDesc d
|
||||||
var x = pp x
|
var x = pp x
|
||||||
|
|
||||||
UndefinedTypeParameter x ->
|
UndefinedTypeParameter x ->
|
||||||
|
@ -50,7 +50,8 @@ import Control.Monad(when,zipWithM,unless)
|
|||||||
|
|
||||||
|
|
||||||
inferModule :: P.Module Name -> InferM Module
|
inferModule :: P.Module Name -> InferM Module
|
||||||
inferModule m = inferModuleK m return
|
inferModule m =
|
||||||
|
do inferModuleK m return
|
||||||
|
|
||||||
inferModuleK :: P.Module Name -> (Module -> InferM a) -> InferM a
|
inferModuleK :: P.Module Name -> (Module -> InferM a) -> InferM a
|
||||||
inferModuleK m continue =
|
inferModuleK m continue =
|
||||||
@ -683,7 +684,7 @@ generalize [] gs0 =
|
|||||||
|
|
||||||
|
|
||||||
generalize bs0 gs0 =
|
generalize bs0 gs0 =
|
||||||
do {- First, we apply the accumulating substituion to the goals
|
do {- First, we apply the accumulating substitution to the goals
|
||||||
and the inferred types, to ensure that we have the most up
|
and the inferred types, to ensure that we have the most up
|
||||||
to date information. -}
|
to date information. -}
|
||||||
gs <- forM gs0 $ \g -> applySubst g
|
gs <- forM gs0 $ \g -> applySubst g
|
||||||
@ -704,11 +705,11 @@ generalize bs0 gs0 =
|
|||||||
addGoals later -- these ones we keep around for to solve later
|
addGoals later -- these ones we keep around for to solve later
|
||||||
|
|
||||||
|
|
||||||
{- Figure out what might be ambigious. We count something as
|
{- Figure out what might be ambiguous. We count something as
|
||||||
ambiguous if it is to be generalized, but does not appear in
|
ambiguous if it is to be generalized, but does not appear in
|
||||||
the any of the inferred types. Things like that of kind `*`
|
the any of the inferred types. Things like that of kind `*`
|
||||||
are certainly ambiguous because we don't have any fancy type functions
|
are certainly ambiguous because we don't have any fancy type functions
|
||||||
on them. However, things of kind `#` may not actually be mabiguos.
|
on them. However, things of kind `#` may not actually be ambiguous.
|
||||||
-}
|
-}
|
||||||
let (maybeAmbig, ambig) = partition ((KNum ==) . kindOf)
|
let (maybeAmbig, ambig) = partition ((KNum ==) . kindOf)
|
||||||
$ Set.toList
|
$ Set.toList
|
||||||
@ -718,13 +719,13 @@ generalize bs0 gs0 =
|
|||||||
|
|
||||||
|
|
||||||
{- See if we might be able to default some of the potentially ambiguous
|
{- See if we might be able to default some of the potentially ambiguous
|
||||||
numeric vairables using the constraints that will be part of the
|
numeric variables using the constraints that will be part of the
|
||||||
newly generalized schema. Note that we only use the `here0` constrains
|
newly generalized schema. Note that we only use the `here0` constrains
|
||||||
as these should be the only ones that might mention the potentially
|
as these should be the only ones that might mention the potentially
|
||||||
ambiguous variable.
|
ambiguous variable.
|
||||||
|
|
||||||
XXX: It is not clear if we should do this, or simply leave the
|
XXX: It is not clear if we should do this, or simply leave the
|
||||||
variables as is. After all, they might not actually be ambiugous...
|
variables as is. After all, they might not actually be ambiguous...
|
||||||
-}
|
-}
|
||||||
let (as0,here1,defSu,ws) = improveByDefaultingWithPure maybeAmbig here0
|
let (as0,here1,defSu,ws) = improveByDefaultingWithPure maybeAmbig here0
|
||||||
mapM_ recordWarning ws
|
mapM_ recordWarning ws
|
||||||
@ -740,7 +741,7 @@ generalize bs0 gs0 =
|
|||||||
|
|
||||||
{- Finally, we replace free variables with bound ones, and fix-up
|
{- Finally, we replace free variables with bound ones, and fix-up
|
||||||
the definitions as needed to reflect that we are now working
|
the definitions as needed to reflect that we are now working
|
||||||
with polymorphic things. For example, apply each occurance to the
|
with polymorphic things. For example, apply each occurrence to the
|
||||||
type parameters. -}
|
type parameters. -}
|
||||||
totSu <- getSubst
|
totSu <- getSubst
|
||||||
let
|
let
|
||||||
@ -758,7 +759,7 @@ generalize bs0 gs0 =
|
|||||||
return (map genB bs)
|
return (map genB bs)
|
||||||
|
|
||||||
|
|
||||||
-- | Check a monomrphic binding.
|
-- | Check a monomorphic binding.
|
||||||
checkMonoB :: P.Bind Name -> Type -> InferM Decl
|
checkMonoB :: P.Bind Name -> Type -> InferM Decl
|
||||||
checkMonoB b t =
|
checkMonoB b t =
|
||||||
inRangeMb (getLoc b) $
|
inRangeMb (getLoc b) $
|
||||||
@ -803,44 +804,27 @@ checkSigB b (Forall as asmps0 t0, validSchema) = case thing (P.bDef b) of
|
|||||||
return e1
|
return e1
|
||||||
cs <- applySubst cs0
|
cs <- applySubst cs0
|
||||||
|
|
||||||
let letGo qs c = Set.null (qs `Set.intersection` fvs (goal c))
|
let findKeep vs keep todo =
|
||||||
|
let stays (_,cvs) = not $ Set.null $ Set.intersection vs cvs
|
||||||
|
(yes,perhaps) = partition stays todo
|
||||||
|
(stayPs,newVars) = unzip yes
|
||||||
|
in case stayPs of
|
||||||
|
[] -> (keep,map fst todo)
|
||||||
|
_ -> findKeep (Set.unions (vs:newVars)) (stayPs ++ keep) perhaps
|
||||||
|
|
||||||
splitPreds qs n ps =
|
let (stay,leave) = findKeep (Set.fromList (map tpVar as)) []
|
||||||
let (l,n1) = partition (letGo qs) ps
|
[ (c, fvs c) | c <- cs ]
|
||||||
in if null n1
|
|
||||||
then (l,n)
|
|
||||||
else splitPreds (fvs (map goal n1) `Set.union` qs) (n1 ++ n) l
|
|
||||||
|
|
||||||
(later0,now) = splitPreds (Set.fromList (map tpVar as)) [] cs
|
addGoals leave
|
||||||
|
|
||||||
asmps1 <- applySubst asmps0
|
asmps1 <- applySubst asmps0
|
||||||
|
|
||||||
defSu1 <- proveImplication (Just (thing (P.bName b))) as asmps1 now
|
su <- proveImplication (Just (thing (P.bName b))) as asmps1 stay
|
||||||
let later = apSubst defSu1 later0
|
extendSubst su
|
||||||
asmps = apSubst defSu1 asmps1
|
|
||||||
|
|
||||||
-- Now we check for any remaining variables that are not mentioned
|
let asmps = apSubst su asmps1
|
||||||
-- in the environment. The plan is to try to default these to something
|
t <- applySubst t0
|
||||||
-- reasonable.
|
e2 <- applySubst e1
|
||||||
do let laterVs = fvs (map goal later)
|
|
||||||
asmpVs <- varsWithAsmps
|
|
||||||
let genVs = laterVs `Set.difference` asmpVs
|
|
||||||
(maybeAmbig,ambig) = partition ((== KNum) . kindOf)
|
|
||||||
(Set.toList genVs)
|
|
||||||
when (not (null ambig)) $ recordError
|
|
||||||
$ AmbiguousType [ thing (P.bName b) ] ambig
|
|
||||||
|
|
||||||
-- XXX: Uhm, why are we defaulting that 'later' things here?
|
|
||||||
-- Surely this should be done later, when we solve them?
|
|
||||||
let (_,newGs,defSu2,ws) = improveByDefaultingWithPure maybeAmbig later
|
|
||||||
mapM_ recordWarning ws
|
|
||||||
extendSubst defSu2
|
|
||||||
addGoals newGs
|
|
||||||
|
|
||||||
su <- getSubst
|
|
||||||
let su' = defSu1 @@ su
|
|
||||||
t = apSubst su' t0
|
|
||||||
e2 = apSubst su' e1
|
|
||||||
|
|
||||||
return Decl
|
return Decl
|
||||||
{ dName = thing (P.bName b)
|
{ dName = thing (P.bName b)
|
||||||
|
@ -233,7 +233,7 @@ addTVarsDescs nm t d
|
|||||||
| otherwise = d $$ text "where" $$ vcat (map desc (Set.toList vs))
|
| otherwise = d $$ text "where" $$ vcat (map desc (Set.toList vs))
|
||||||
where
|
where
|
||||||
vs = Set.filter isFreeTV (fvs t)
|
vs = Set.filter isFreeTV (fvs t)
|
||||||
desc v@(TVFree _ _ _ x) = ppWithNames nm v <+> text "is" <+> x
|
desc v@(TVFree _ _ _ x) = ppWithNames nm v <+> text "is" <+> tvarDesc x
|
||||||
desc (TVBound {}) = empty
|
desc (TVBound {}) = empty
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,7 +23,8 @@ import Cryptol.TypeCheck.AST
|
|||||||
import Cryptol.TypeCheck.Subst
|
import Cryptol.TypeCheck.Subst
|
||||||
import Cryptol.TypeCheck.Unify(mgu, Result(..), UnificationError(..))
|
import Cryptol.TypeCheck.Unify(mgu, Result(..), UnificationError(..))
|
||||||
import Cryptol.TypeCheck.InferTypes
|
import Cryptol.TypeCheck.InferTypes
|
||||||
import Cryptol.TypeCheck.Error(Warning,Error(..),cleanupErrors)
|
import Cryptol.TypeCheck.Error(Warning(..),Error(..),cleanupErrors)
|
||||||
|
import Cryptol.TypeCheck.PP (brackets, commaSep)
|
||||||
import qualified Cryptol.TypeCheck.SimpleSolver as Simple
|
import qualified Cryptol.TypeCheck.SimpleSolver as Simple
|
||||||
import qualified Cryptol.TypeCheck.Solver.SMT as SMT
|
import qualified Cryptol.TypeCheck.Solver.SMT as SMT
|
||||||
import Cryptol.Utils.PP(pp, ($$), (<+>), Doc, text, quotes)
|
import Cryptol.Utils.PP(pp, ($$), (<+>), Doc, text, quotes)
|
||||||
@ -309,7 +310,9 @@ recordError e =
|
|||||||
|
|
||||||
recordWarning :: Warning -> InferM ()
|
recordWarning :: Warning -> InferM ()
|
||||||
recordWarning w =
|
recordWarning w =
|
||||||
do r <- curRange
|
do r <- case w of
|
||||||
|
DefaultingTo d _ -> return (tvarSource d)
|
||||||
|
_ -> curRange
|
||||||
IM $ sets_ $ \s -> s { iWarnings = (r,w) : iWarnings s }
|
IM $ sets_ $ \s -> s { iWarnings = (r,w) : iWarnings s }
|
||||||
|
|
||||||
getSolver :: InferM SMT.Solver
|
getSolver :: InferM SMT.Solver
|
||||||
@ -443,7 +446,8 @@ newTVar' src extraBound k =
|
|||||||
do r <- curRange
|
do r <- curRange
|
||||||
bound <- getBoundInScope
|
bound <- getBoundInScope
|
||||||
let vs = Set.union extraBound bound
|
let vs = Set.union extraBound bound
|
||||||
msg = src $$ text "at" <+> pp r
|
msg = TVarInfo { tvarDesc = src $$ text "at" <+> pp r
|
||||||
|
, tvarSource = r }
|
||||||
newName $ \s -> let x = seedTVar s
|
newName $ \s -> let x = seedTVar s
|
||||||
in (TVFree x k vs msg, s { seedTVar = x + 1 })
|
in (TVFree x k vs msg, s { seedTVar = x + 1 })
|
||||||
|
|
||||||
@ -501,7 +505,21 @@ getSubst = IM $ fmap iSubst get
|
|||||||
|
|
||||||
-- | Add to the accumulated substitution.
|
-- | Add to the accumulated substitution.
|
||||||
extendSubst :: Subst -> InferM ()
|
extendSubst :: Subst -> InferM ()
|
||||||
extendSubst su = IM $ sets_ $ \s -> s { iSubst = su @@ iSubst s }
|
extendSubst su =
|
||||||
|
do IM $ sets_ $ \s -> s { iSubst = su @@ iSubst s }
|
||||||
|
bound <- getBoundInScope
|
||||||
|
let suBound = Set.filter isBoundTV (Set.unions (map (fvs . snd) (substToList su)))
|
||||||
|
let escaped = Set.difference suBound bound
|
||||||
|
if Set.null escaped then return () else
|
||||||
|
panic "Cryptol.TypeCheck.Monad.extendSubst"
|
||||||
|
[ "Escaped quantified variables:"
|
||||||
|
, "Substitution: " ++ show (brackets (commaSep (map ppBinding su_binds)))
|
||||||
|
, "Vars in scope: " ++ show (brackets (commaSep (map pp (Set.toList bound))))
|
||||||
|
, "Escaped: " ++ show (brackets (commaSep (map pp (Set.toList escaped))))
|
||||||
|
]
|
||||||
|
where
|
||||||
|
su_binds = substToList su
|
||||||
|
ppBinding (v,x) = pp v <+> text ":=" <+> pp x
|
||||||
|
|
||||||
|
|
||||||
-- | Variables that are either mentioned in the environment or in
|
-- | Variables that are either mentioned in the environment or in
|
||||||
@ -603,6 +621,7 @@ getParamFuns = IM $ asks iParamFuns
|
|||||||
getParamTypes :: InferM (Map Name ModTParam)
|
getParamTypes :: InferM (Map Name ModTParam)
|
||||||
getParamTypes = IM $ asks iParamTypes
|
getParamTypes = IM $ asks iParamTypes
|
||||||
|
|
||||||
|
-- | Constraints on the module's parameters.
|
||||||
getParamConstraints :: InferM [Located Prop]
|
getParamConstraints :: InferM [Located Prop]
|
||||||
getParamConstraints = IM $ asks iParamConstraints
|
getParamConstraints = IM $ asks iParamConstraints
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ module Cryptol.TypeCheck.Solve
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Cryptol.Parser.Position(thing)
|
import Cryptol.Parser.Position(thing)
|
||||||
import Cryptol.TypeCheck.PP(pp)
|
import Cryptol.TypeCheck.PP -- (pp)
|
||||||
import Cryptol.TypeCheck.AST
|
import Cryptol.TypeCheck.AST
|
||||||
import Cryptol.TypeCheck.Monad
|
import Cryptol.TypeCheck.Monad
|
||||||
import Cryptol.TypeCheck.Default
|
import Cryptol.TypeCheck.Default
|
||||||
@ -182,16 +182,21 @@ simpHasGoals = go False [] =<< getHasGoals
|
|||||||
-- on the module's type parameters.
|
-- on the module's type parameters.
|
||||||
proveModuleTopLevel :: InferM ()
|
proveModuleTopLevel :: InferM ()
|
||||||
proveModuleTopLevel =
|
proveModuleTopLevel =
|
||||||
do -- io $ putStrLn "Module top level"
|
do simplifyAllConstraints
|
||||||
simplifyAllConstraints
|
gs <- getGoals
|
||||||
|
let vs = Set.toList (Set.filter isFreeTV (fvs gs))
|
||||||
|
(_,gs1,su1,ws) = improveByDefaultingWithPure vs gs
|
||||||
|
extendSubst su1
|
||||||
|
mapM_ recordWarning ws
|
||||||
|
|
||||||
cs <- getParamConstraints
|
cs <- getParamConstraints
|
||||||
case cs of
|
case cs of
|
||||||
[] -> return ()
|
[] -> addGoals gs1
|
||||||
_ -> do gs <- getGoals
|
_ -> do su2 <- proveImplication Nothing [] [] gs1
|
||||||
su <- proveImplication Nothing [] [] gs
|
extendSubst su2
|
||||||
extendSubst su
|
|
||||||
|
|
||||||
|
|
||||||
|
-- | Prove an implication, and return any improvements that we computed.
|
||||||
|
-- Records errors, if any of the goals couldn't be solved.
|
||||||
proveImplication :: Maybe Name -> [TParam] -> [Prop] -> [Goal] -> InferM Subst
|
proveImplication :: Maybe Name -> [TParam] -> [Prop] -> [Goal] -> InferM Subst
|
||||||
proveImplication lnam as ps gs =
|
proveImplication lnam as ps gs =
|
||||||
do evars <- varsWithAsmps
|
do evars <- varsWithAsmps
|
||||||
@ -232,7 +237,8 @@ proveImplicationIO s f varsInEnv ps asmps0 gs0 =
|
|||||||
$ Set.difference (fvs (map goal gs3)) varsInEnv
|
$ Set.difference (fvs (map goal gs3)) varsInEnv
|
||||||
case improveByDefaultingWithPure free gs3 of
|
case improveByDefaultingWithPure free gs3 of
|
||||||
(_,_,newSu,_)
|
(_,_,newSu,_)
|
||||||
| isEmptySubst newSu -> return (err gs3, su) -- XXX: Old?
|
| isEmptySubst newSu ->
|
||||||
|
return (err gs3, su) -- XXX: Old?
|
||||||
(_,newGs,newSu,ws) ->
|
(_,newGs,newSu,ws) ->
|
||||||
do let su1 = newSu @@ su
|
do let su1 = newSu @@ su
|
||||||
(res1,su2) <- proveImplicationIO s f varsInEnv ps
|
(res1,su2) <- proveImplicationIO s f varsInEnv ps
|
||||||
|
@ -16,6 +16,7 @@ import Data.List(sortBy)
|
|||||||
import Data.Ord(comparing)
|
import Data.Ord(comparing)
|
||||||
|
|
||||||
import Cryptol.Parser.Selector
|
import Cryptol.Parser.Selector
|
||||||
|
import Cryptol.Parser.Position(Range)
|
||||||
import Cryptol.ModuleSystem.Name
|
import Cryptol.ModuleSystem.Name
|
||||||
import Cryptol.Prims.Syntax
|
import Cryptol.Prims.Syntax
|
||||||
import Cryptol.Utils.Ident (Ident)
|
import Cryptol.Utils.Ident (Ident)
|
||||||
@ -112,14 +113,19 @@ data Type = TCon !TCon ![Type]
|
|||||||
|
|
||||||
|
|
||||||
-- | Type variables.
|
-- | Type variables.
|
||||||
data TVar = TVFree !Int Kind (Set TVar) Doc
|
data TVar = TVFree !Int Kind (Set TVar) TVarInfo
|
||||||
-- ^ Unique, kind, ids of bound type variables that are in scope
|
-- ^ Unique, kind, ids of bound type variables that are in scope
|
||||||
-- The `Doc` is a description of how this type came to be.
|
-- The last field gives us some infor for nicer warnings/errors.
|
||||||
|
|
||||||
|
|
||||||
| TVBound {-# UNPACK #-} !TParam
|
| TVBound {-# UNPACK #-} !TParam
|
||||||
deriving (Show, Generic, NFData)
|
deriving (Show, Generic, NFData)
|
||||||
|
|
||||||
|
data TVarInfo = TVarInfo { tvarSource :: Range -- ^ Source code that gave rise
|
||||||
|
, tvarDesc :: Doc -- ^ Description
|
||||||
|
}
|
||||||
|
deriving (Show, Generic, NFData)
|
||||||
|
|
||||||
|
|
||||||
-- | The type is supposed to be of kind `KProp`
|
-- | The type is supposed to be of kind `KProp`
|
||||||
type Prop = Type
|
type Prop = Type
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at ./issue268.cry:2:1--2:74:
|
[warning] at ./issue268.cry:2:61--2:65:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression drop
|
of expression drop
|
||||||
at ./issue268.cry:2:61--2:65
|
at ./issue268.cry:2:61--2:65
|
||||||
|
@ -4,9 +4,9 @@ Loading module test04
|
|||||||
module test04
|
module test04
|
||||||
import Cryptol
|
import Cryptol
|
||||||
/* Not recursive */
|
/* Not recursive */
|
||||||
test04::test : {a, b} (Literal 10 b) => a -> ((a, ()), (a, b))
|
test04::test : {a, b} (b >= 4, fin b) => a -> ((a, ()), (a, [b]))
|
||||||
test04::test = \{a, b} (Literal 10 b) (a : a) ->
|
test04::test = \{a, b} (b >= 4, fin b) (a : a) ->
|
||||||
(test04::f () (), test04::f b (Cryptol::demote 10 b <>))
|
(test04::f () (), test04::f [b] (Cryptol::demote 10 b <> <>))
|
||||||
where
|
where
|
||||||
/* Not recursive */
|
/* Not recursive */
|
||||||
test04::f : {c} c -> (a, c)
|
test04::f : {c} c -> (a, c)
|
||||||
@ -16,10 +16,17 @@ test04::test = \{a, b} (Literal 10 b) (a : a) ->
|
|||||||
|
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module test04
|
Loading module test04
|
||||||
|
[warning] at ./test04.cry:3:19--3:21:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of literal or demoted expression
|
||||||
|
at ./test04.cry:3:19--3:21
|
||||||
|
to 4
|
||||||
|
|
||||||
[error] at ./test04.cry:3:19--3:21:
|
[error] at ./test04.cry:3:19--3:21:
|
||||||
Unsolved constraints:
|
Type mismatch:
|
||||||
Literal 10 ()
|
Expected type: ()
|
||||||
arising from
|
Inferred type: [?p33]
|
||||||
use of literal or demoted expression
|
where
|
||||||
|
?p33 is type parameter 'bits'
|
||||||
|
of literal or demoted expression
|
||||||
at ./test04.cry:3:19--3:21
|
at ./test04.cry:3:19--3:21
|
||||||
|
@ -48,7 +48,7 @@ Loading module test05
|
|||||||
[warning] at ./test05.cry:13:5--13:8
|
[warning] at ./test05.cry:13:5--13:8
|
||||||
This binding for foo shadows the existing binding from
|
This binding for foo shadows the existing binding from
|
||||||
(at ./test05.cry:9:3--9:6, foo)
|
(at ./test05.cry:9:3--9:6, foo)
|
||||||
[warning] at ./test05.cry:1:1--14:21:
|
[warning] at ./test05.cry:14:11--14:21:
|
||||||
Defaulting 1st type parameter
|
Defaulting 1st type parameter
|
||||||
of expression (#)
|
of expression (#)
|
||||||
at ./test05.cry:14:11--14:21
|
at ./test05.cry:14:11--14:21
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--3:23:
|
[warning] at ./unary-2.cry:3:22--3:23:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./unary-2.cry:3:22--3:23
|
at ./unary-2.cry:3:22--3:23
|
||||||
to 2
|
to 2
|
||||||
[warning] at :1:1--3:23:
|
[warning] at ./unary-2.cry:2:22--2:23:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./unary-2.cry:2:22--2:23
|
at ./unary-2.cry:2:22--2:23
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module AES
|
Loading module AES
|
||||||
[warning] at ./AES.cry:147:1--150:39:
|
[warning] at ./AES.cry:87:58--87:66:
|
||||||
Defaulting type parameter 'bits'
|
|
||||||
of finite enumeration
|
|
||||||
at ./AES.cry:147:36--147:51
|
|
||||||
to 4
|
|
||||||
[warning] at ./AES.cry:147:1--150:39:
|
|
||||||
Defaulting type parameter 'bits'
|
|
||||||
of literal or demoted expression
|
|
||||||
at ./AES.cry:147:60--147:63
|
|
||||||
to 4
|
|
||||||
[warning] at ./AES.cry:124:1--129:31:
|
|
||||||
Defaulting type parameter 'bits'
|
|
||||||
of literal or demoted expression
|
|
||||||
at ./AES.cry:127:32--127:33
|
|
||||||
to 3
|
|
||||||
[warning] at ./AES.cry:91:1--93:23:
|
|
||||||
Defaulting type parameter 'bits'
|
|
||||||
of finite enumeration
|
|
||||||
at ./AES.cry:92:61--92:69
|
|
||||||
to 2
|
|
||||||
[warning] at ./AES.cry:86:1--88:20:
|
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./AES.cry:87:58--87:66
|
at ./AES.cry:87:58--87:66
|
||||||
to 2
|
to 2
|
||||||
|
[warning] at ./AES.cry:92:61--92:69:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of finite enumeration
|
||||||
|
at ./AES.cry:92:61--92:69
|
||||||
|
to 2
|
||||||
|
[warning] at ./AES.cry:127:32--127:33:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of literal or demoted expression
|
||||||
|
at ./AES.cry:127:32--127:33
|
||||||
|
to 3
|
||||||
|
[warning] at ./AES.cry:147:36--147:51:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of finite enumeration
|
||||||
|
at ./AES.cry:147:36--147:51
|
||||||
|
to 4
|
||||||
|
[warning] at ./AES.cry:147:60--147:63:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of literal or demoted expression
|
||||||
|
at ./AES.cry:147:60--147:63
|
||||||
|
to 4
|
||||||
True
|
True
|
||||||
True
|
True
|
||||||
True
|
True
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at ./check01.cry:2:1--2:27:
|
[warning] at ./check01.cry:2:24--2:26:
|
||||||
Defaulting 4th type parameter
|
Defaulting type parameter 'bits'
|
||||||
of expression (@@)
|
of literal or demoted expression
|
||||||
at ./check01.cry:2:5--2:27
|
at ./check01.cry:2:24--2:26
|
||||||
to max (width 19) (width 6)
|
to 5
|
||||||
[0x00000007, 0x00000014]
|
[0x00000007, 0x00000014]
|
||||||
True
|
True
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--3:25:
|
[warning] at ./check02.cry:3:24--3:25:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check02.cry:3:24--3:25
|
at ./check02.cry:3:24--3:25
|
||||||
to 1
|
to 1
|
||||||
[warning] at <interactive>:1:1--1:18:
|
[warning] at <interactive>:1:9--1:18:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:9--1:18
|
at <interactive>:1:9--1:18
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at <interactive>:1:1--1:22:
|
[warning] at <interactive>:1:11--1:22:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:11--1:22
|
at <interactive>:1:11--1:22
|
||||||
@ -9,7 +9,7 @@ Loading module Main
|
|||||||
[0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004,
|
[0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004,
|
||||||
0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009,
|
0x00000005, 0x00000006, 0x00000007, 0x00000008, 0x00000009,
|
||||||
0x0000000a]
|
0x0000000a]
|
||||||
[warning] at <interactive>:1:1--1:23:
|
[warning] at <interactive>:1:12--1:23:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:12--1:23
|
at <interactive>:1:12--1:23
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--4:45:
|
[warning] at ./check04.cry:4:21--4:29:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check04.cry:4:21--4:29
|
at ./check04.cry:4:21--4:29
|
||||||
to 2
|
to 2
|
||||||
[warning] at :1:1--4:45:
|
[warning] at ./check04.cry:4:43--4:44:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check04.cry:4:43--4:44
|
at ./check04.cry:4:43--4:44
|
||||||
to 2
|
to 2
|
||||||
[warning] at <interactive>:1:1--1:21:
|
[warning] at <interactive>:1:12--1:21:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:12--1:21
|
at <interactive>:1:12--1:21
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--4:45:
|
[warning] at ./check05.cry:4:21--4:29:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check05.cry:4:21--4:29
|
at ./check05.cry:4:21--4:29
|
||||||
to 2
|
to 2
|
||||||
[warning] at :1:1--4:45:
|
[warning] at ./check05.cry:4:43--4:44:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check05.cry:4:43--4:44
|
at ./check05.cry:4:43--4:44
|
||||||
to 2
|
to 2
|
||||||
[warning] at <interactive>:1:1--1:21:
|
[warning] at <interactive>:1:12--1:21:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:12--1:21
|
at <interactive>:1:12--1:21
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--5:70:
|
[warning] at ./check06.cry:5:24--5:32:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check06.cry:5:24--5:32
|
at ./check06.cry:5:24--5:32
|
||||||
to 2
|
to 2
|
||||||
[warning] at :1:1--5:70:
|
[warning] at ./check06.cry:5:66--5:67:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check06.cry:5:66--5:67
|
at ./check06.cry:5:66--5:67
|
||||||
to 2
|
to 2
|
||||||
[warning] at <interactive>:1:1--1:24:
|
[warning] at <interactive>:1:15--1:24:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:15--1:24
|
at <interactive>:1:15--1:24
|
||||||
|
@ -1,42 +1,42 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--14:39:
|
[warning] at ./check07.cry:7:43--7:54:
|
||||||
Defaulting type parameter 'bits'
|
|
||||||
of literal or demoted expression
|
|
||||||
at ./check07.cry:13:21--13:22
|
|
||||||
to 1
|
|
||||||
[warning] at :1:1--14:39:
|
|
||||||
Defaulting type parameter 'bits'
|
|
||||||
of finite enumeration
|
|
||||||
at ./check07.cry:11:39--11:51
|
|
||||||
to 4
|
|
||||||
[warning] at ./check07.cry:7:1--7:56:
|
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check07.cry:7:43--7:54
|
at ./check07.cry:7:43--7:54
|
||||||
to 6
|
to 6
|
||||||
[warning] at :1:1--14:39:
|
[warning] at ./check07.cry:13:21--13:22:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of literal or demoted expression
|
||||||
|
at ./check07.cry:13:21--13:22
|
||||||
|
to 1
|
||||||
|
[warning] at ./check07.cry:11:39--11:51:
|
||||||
|
Defaulting type parameter 'bits'
|
||||||
|
of finite enumeration
|
||||||
|
at ./check07.cry:11:39--11:51
|
||||||
|
to 4
|
||||||
|
[warning] at ./check07.cry:5:37--5:49:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check07.cry:5:37--5:49
|
at ./check07.cry:5:37--5:49
|
||||||
to 7
|
to 7
|
||||||
[warning] at :1:1--14:39:
|
[warning] at ./check07.cry:4:37--4:48:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check07.cry:4:37--4:48
|
at ./check07.cry:4:37--4:48
|
||||||
to 6
|
to 6
|
||||||
[warning] at :1:1--14:39:
|
[warning] at ./check07.cry:3:37--3:65:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check07.cry:3:37--3:65
|
at ./check07.cry:3:37--3:65
|
||||||
to 32
|
to 32
|
||||||
[warning] at :1:1--14:39:
|
[warning] at ./check07.cry:2:37--2:49:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check07.cry:2:37--2:49
|
at ./check07.cry:2:37--2:49
|
||||||
to 7
|
to 7
|
||||||
[warning] at :1:1--14:39:
|
[warning] at ./check07.cry:1:37--1:48:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check07.cry:1:37--1:48
|
at ./check07.cry:1:37--1:48
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--7:45:
|
[warning] at ./check08.cry:9:25--9:33:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check08.cry:9:25--9:33
|
at ./check08.cry:9:25--9:33
|
||||||
to 3
|
to 3
|
||||||
[warning] at :1:1--7:45:
|
[warning] at ./check08.cry:7:16--7:24:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check08.cry:7:16--7:24
|
at ./check08.cry:7:16--7:24
|
||||||
to 3
|
to 3
|
||||||
[warning] at <interactive>:1:1--1:15:
|
[warning] at <interactive>:1:7--1:15:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:7--1:15
|
at <interactive>:1:7--1:15
|
||||||
|
@ -13,28 +13,28 @@ Loading module Main
|
|||||||
[warning] at ./check09.cry:23:5--23:7
|
[warning] at ./check09.cry:23:5--23:7
|
||||||
This binding for ss shadows the existing binding from
|
This binding for ss shadows the existing binding from
|
||||||
(at ./check09.cry:5:1--5:3, ss)
|
(at ./check09.cry:5:1--5:3, ss)
|
||||||
[warning] at ./check09.cry:17:1--30:54:
|
[warning] at ./check09.cry:17:18--17:28:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check09.cry:17:18--17:28
|
at ./check09.cry:17:18--17:28
|
||||||
to 3
|
to 3
|
||||||
[warning] at :1:1--37:28:
|
[warning] at ./check09.cry:13:18--13:26:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check09.cry:13:18--13:26
|
at ./check09.cry:13:18--13:26
|
||||||
to 2
|
to 2
|
||||||
[warning] at :1:1--37:28:
|
[warning] at ./check09.cry:14:18--14:26:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check09.cry:14:18--14:26
|
at ./check09.cry:14:18--14:26
|
||||||
to 2
|
to 2
|
||||||
[warning] at <interactive>:1:1--1:15:
|
[warning] at <interactive>:1:7--1:15:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:7--1:15
|
at <interactive>:1:7--1:15
|
||||||
to 2
|
to 2
|
||||||
[0x00000008, 0x00004080, 0x00068c00, 0x00a22800]
|
[0x00000008, 0x00004080, 0x00068c00, 0x00a22800]
|
||||||
[warning] at <interactive>:1:1--1:15:
|
[warning] at <interactive>:1:7--1:15:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:7--1:15
|
at <interactive>:1:7--1:15
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--5:25:
|
[warning] at ./check11.cry:3:10--3:19:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check11.cry:3:10--3:19
|
at ./check11.cry:3:10--3:19
|
||||||
to 7
|
to 7
|
||||||
[warning] at :1:1--5:25:
|
[warning] at ./check11.cry:5:16--5:25:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check11.cry:5:16--5:25
|
at ./check11.cry:5:16--5:25
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--5:76:
|
[warning] at ./check14.cry:5:73--5:74:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check14.cry:5:73--5:74
|
at ./check14.cry:5:73--5:74
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--4:17:
|
[warning] at ./check16-tab.cry:1:22--1:23:
|
||||||
Defaulting 1st type parameter
|
Defaulting type parameter 'bits'
|
||||||
of expression width
|
of literal or demoted expression
|
||||||
at ./check16-tab.cry:1:11--1:16
|
at ./check16-tab.cry:1:22--1:23
|
||||||
to max 4 (width 8)
|
to 4
|
||||||
True
|
True
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--4:13:
|
[warning] at ./check16.cry:1:22--1:23:
|
||||||
Defaulting 1st type parameter
|
Defaulting type parameter 'bits'
|
||||||
of expression width
|
of literal or demoted expression
|
||||||
at ./check16.cry:1:11--1:16
|
at ./check16.cry:1:22--1:23
|
||||||
to max 4 (width 8)
|
to 4
|
||||||
True
|
True
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--3:39:
|
[warning] at ./check20.cry:3:31--3:33:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check20.cry:3:31--3:33
|
at ./check20.cry:3:31--3:33
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--7:63:
|
[warning] at ./check21.cry:4:31--4:32:
|
||||||
Defaulting 1st type parameter
|
Defaulting type parameter 'bits'
|
||||||
of expression width
|
of literal or demoted expression
|
||||||
at ./check21.cry:4:21--4:26
|
at ./check21.cry:4:31--4:32
|
||||||
to max 4 (width 1)
|
to 4
|
||||||
True
|
True
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--12:70:
|
[warning] at ./check22.cry:3:31--3:32:
|
||||||
Defaulting 1st type parameter
|
Defaulting type parameter 'bits'
|
||||||
of expression width
|
of literal or demoted expression
|
||||||
at ./check22.cry:3:21--3:26
|
at ./check22.cry:3:31--3:32
|
||||||
to max 4 (width 1)
|
to 4
|
||||||
True
|
True
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--4:82:
|
[warning] at ./check24.cry:4:60--4:71:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check24.cry:4:60--4:71
|
at ./check24.cry:4:60--4:71
|
||||||
|
@ -4,12 +4,12 @@ Loading module check25
|
|||||||
[warning] at ./check25.cry:6:9--6:11
|
[warning] at ./check25.cry:6:9--6:11
|
||||||
This binding for tz shadows the existing binding from
|
This binding for tz shadows the existing binding from
|
||||||
(at ./check25.cry:3:1--3:3, tz)
|
(at ./check25.cry:3:1--3:3, tz)
|
||||||
[warning] at ./check25.cry:1:1--8:19:
|
[warning] at ./check25.cry:8:17--8:19:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check25.cry:8:17--8:19
|
at ./check25.cry:8:17--8:19
|
||||||
to 4
|
to 4
|
||||||
[warning] at ./check25.cry:1:1--8:19:
|
[warning] at ./check25.cry:6:14--6:16:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check25.cry:6:14--6:16
|
at ./check25.cry:6:14--6:16
|
||||||
|
@ -1,72 +1,72 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:11:42--11:45:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xys
|
of expression Main::xys
|
||||||
at ./check26.cry:11:42--11:45
|
at ./check26.cry:11:42--11:45
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:8:31--8:34:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xys
|
of expression Main::xys
|
||||||
at ./check26.cry:8:31--8:34
|
at ./check26.cry:8:31--8:34
|
||||||
to 3
|
to 3
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:9:23--9:34:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check26.cry:9:23--9:34
|
at ./check26.cry:9:23--9:34
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:9:41--9:51:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at ./check26.cry:9:41--9:51
|
at ./check26.cry:9:41--9:51
|
||||||
to 3
|
to 3
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:4:17--4:19:
|
||||||
Defaulting 1st type parameter
|
Defaulting 1st type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:4:17--4:19
|
at ./check26.cry:4:17--4:19
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:4:17--4:19:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:4:17--4:19
|
at ./check26.cry:4:17--4:19
|
||||||
to 5
|
to 5
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:4:23--4:25:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:4:23--4:25
|
at ./check26.cry:4:23--4:25
|
||||||
to 5
|
to 5
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:4:37--4:39:
|
||||||
Defaulting 1st type parameter
|
Defaulting 1st type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:4:37--4:39
|
at ./check26.cry:4:37--4:39
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:4:37--4:39:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:4:37--4:39
|
at ./check26.cry:4:37--4:39
|
||||||
to 5
|
to 5
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:4:43--4:45:
|
||||||
Defaulting 1st type parameter
|
Defaulting 1st type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:4:43--4:45
|
at ./check26.cry:4:43--4:45
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:5:17--5:19:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:5:17--5:19
|
at ./check26.cry:5:17--5:19
|
||||||
to 5
|
to 5
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:5:23--5:25:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check26.cry:5:23--5:25
|
at ./check26.cry:5:23--5:25
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:5:35--5:37:
|
||||||
Defaulting 1st type parameter
|
Defaulting 1st type parameter
|
||||||
of expression Main::xy
|
of expression Main::xy
|
||||||
at ./check26.cry:5:35--5:37
|
at ./check26.cry:5:35--5:37
|
||||||
to 4
|
to 4
|
||||||
[warning] at :1:1--13:43:
|
[warning] at ./check26.cry:5:41--5:43:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at ./check26.cry:5:41--5:43
|
at ./check26.cry:5:41--5:43
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at :1:1--2:42:
|
[warning] at ./check28.cry:2:29--2:31:
|
||||||
Defaulting 2nd type parameter
|
Defaulting 2nd type parameter
|
||||||
of expression Main::xs
|
of expression Main::xs
|
||||||
at ./check28.cry:2:29--2:31
|
at ./check28.cry:2:29--2:31
|
||||||
|
@ -6,14 +6,14 @@ Assuming a = 2
|
|||||||
Assuming a = 1
|
Assuming a = 1
|
||||||
Assuming b = 2
|
Assuming b = 2
|
||||||
{x = 0x1, y = 0x2}
|
{x = 0x1, y = 0x2}
|
||||||
[warning] at <interactive>:1:1--1:22:
|
[warning] at <interactive>:1:20--1:21:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at <interactive>:1:20--1:21
|
at <interactive>:1:20--1:21
|
||||||
to 2
|
to 2
|
||||||
Assuming a = 1
|
Assuming a = 1
|
||||||
0x1
|
0x1
|
||||||
[warning] at <interactive>:1:1--1:46:
|
[warning] at <interactive>:1:42--1:44:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of literal or demoted expression
|
of literal or demoted expression
|
||||||
at <interactive>:1:42--1:44
|
at <interactive>:1:42--1:44
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Loading module Main
|
Loading module Main
|
||||||
[warning] at <interactive>:1:1--1:42:
|
[warning] at <interactive>:1:11--1:19:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:11--1:19
|
at <interactive>:1:11--1:19
|
||||||
to max 4 (width 10)
|
to max 4 (width 10)
|
||||||
True
|
True
|
||||||
[warning] at <interactive>:1:1--1:43:
|
[warning] at <interactive>:1:11--1:20:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:11--1:20
|
at <interactive>:1:11--1:20
|
||||||
to max 4 (width 10)
|
to max 4 (width 10)
|
||||||
False
|
False
|
||||||
[warning] at <interactive>:1:1--1:48:
|
[warning] at <interactive>:1:11--1:25:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:11--1:25
|
at <interactive>:1:11--1:25
|
||||||
to max 7 (width 10)
|
to max 7 (width 10)
|
||||||
False
|
False
|
||||||
[warning] at <interactive>:1:1--1:47:
|
[warning] at <interactive>:1:11--1:24:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:11--1:24
|
at <interactive>:1:11--1:24
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Loading module Cryptol
|
Loading module Cryptol
|
||||||
Assuming a = 4
|
Assuming a = 4
|
||||||
[0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb]
|
[0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb, 0xb]
|
||||||
[warning] at <interactive>:1:1--1:68:
|
[warning] at <interactive>:1:65--1:67:
|
||||||
Defaulting type parameter 'bits'
|
Defaulting type parameter 'bits'
|
||||||
of finite enumeration
|
of finite enumeration
|
||||||
at <interactive>:1:13--1:24
|
at <interactive>:1:13--1:24
|
||||||
|
Loading…
Reference in New Issue
Block a user