summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/vectors.sail1
-rw-r--r--src/type_internal.ml5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/test/vectors.sail b/src/test/vectors.sail
index da5a525b..910ca329 100644
--- a/src/test/vectors.sail
+++ b/src/test/vectors.sail
@@ -76,6 +76,7 @@ function bit main _ = {
(* constraints checking *)
BA := 12;
+ CR := 0b00000000000000000000000000000000;
CR[32 + BA] := CR[32 + BA];
(* slice access of literal *)
diff --git a/src/type_internal.ml b/src/type_internal.ml
index 45b89f3b..c5654bf5 100644
--- a/src/type_internal.ml
+++ b/src/type_internal.ml
@@ -489,10 +489,13 @@ let initial_kind_env =
("vector", {k = K_Lam( [ {k = K_Nat}; {k = K_Nat}; {k= K_Ord} ; {k=K_Typ}], {k=K_Typ}) } )
]
+let mk_range n = {t=Tapp("range",[TA_nexp {nexp=n};TA_nexp {nexp=Nconst 0}])}
let initial_typ_env =
Envmap.from_list [
("ignore",Some(([("a",{k=K_Typ});("b",{k=K_Efct})],{t=Tfn ({t=Tvar "a"},unit_t,{effect=Evar "b"})}),External None,[],pure_e));
- ("+",Some(([],{t= Tfn ({t=Ttup([nat_typ;nat_typ])},nat_typ,pure_e)}),External (Some "add"),[],pure_e));
+ ("+",Some(([("n",{k=K_Nat});("m",{k=K_Nat})],{t= Tfn({t=Ttup([mk_range (Nvar "n");mk_range (Nvar "m")])},
+ (mk_range (Nadd({nexp=Nvar "n"},{nexp=Nvar "m"}))),
+ pure_e)}),External (Some "add"),[],pure_e));
("*",Some(([],{t= Tfn ({t=Ttup([nat_typ;nat_typ])},nat_typ,pure_e)}),External (Some "multiply"),[],pure_e));
("-",Some(([],{t= Tfn ({t=Ttup([nat_typ;nat_typ])},nat_typ,pure_e)}),External (Some "minus"),[],pure_e));
("mod",Some(([],{t= Tfn ({t=Ttup([nat_typ;nat_typ])},nat_typ,pure_e)}),External (Some "mod"),[],pure_e));