Skip to content

Commit c4637d1

Browse files
authored
Merge branch 'master' into hoist_ifs
2 parents 5192661 + cf78257 commit c4637d1

File tree

25 files changed

+1193
-410
lines changed

25 files changed

+1193
-410
lines changed

cabal.project

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ packages:
44
crux-mir-comp
55
cryptol-saw-core
66
rme
7+
verif-viewer
78
saw-core
89
saw-core-aig
910
saw-core-sbv

cryptol-saw-core/src/Verifier/SAW/Cryptol.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1624,9 +1624,9 @@ scCryptolType sc t =
16241624
scCryptolEq :: SharedContext -> Term -> Term -> IO Term
16251625
scCryptolEq sc x y =
16261626
do rules <- concat <$> traverse defRewrites defs
1627-
let ss = addConvs natConversions (addRules rules emptySimpset)
1628-
tx <- scTypeOf sc x >>= rewriteSharedTerm sc ss >>= scCryptolType sc
1629-
ty <- scTypeOf sc y >>= rewriteSharedTerm sc ss >>= scCryptolType sc
1627+
let ss = addConvs natConversions (addRules rules emptySimpset :: Simpset ())
1628+
tx <- scTypeOf sc x >>= rewriteSharedTerm sc ss >>= scCryptolType sc . snd
1629+
ty <- scTypeOf sc y >>= rewriteSharedTerm sc ss >>= scCryptolType sc . snd
16301630
unless (tx == ty) $
16311631
panic "scCryptolEq"
16321632
[ "scCryptolEq: type mismatch between"

cryptol-saw-core/src/Verifier/SAW/Cryptol/Simpset.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import Verifier.SAW.Rewriter
1818
import Verifier.SAW.SharedTerm
1919
import Verifier.SAW.Term.Functor
2020

21-
mkCryptolSimpset :: SharedContext -> IO Simpset
21+
mkCryptolSimpset :: SharedContext -> IO (Simpset a)
2222
mkCryptolSimpset sc =
2323
do m <- scFindModule sc cryptolModuleName
2424
scSimpset sc (cryptolDefs m) [] []

examples/ecdsa/ecdsa.saw

+9-6
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ let ss0 = add_prelude_eqs [ "bvShiftL_bvShl"
289289
, "bvShiftR_bvShr"
290290
] cry_ss;
291291

292-
let crule t = rewrite ss0 t;
292+
let assume_rule t = prove_print (admit "assume rule") (rewrite ss0 t);
293293
let prove_rule t = prove_print abc (rewrite ss0 t);
294294

295295
let ss1 = add_prelude_eqs
@@ -365,16 +365,19 @@ ec_join_split_768 <- prove_rule {{ \x -> ec_join768 (ec_split768 x) == x }};
365365
ec_split_join_768 <- prove_rule {{ \x -> ec_split768 (ec_join768 x) == x }};
366366

367367
// Axiomatic rules: For now, we assume these without proof.
368-
let mul_java_elim = crule {{ \(a:[768]) -> \(x:[384]) -> \(y:[384]) ->
369-
mul_java::mul_java (a, x, y) == p384_field::p384_safe_product (x, y) }};
370-
let sq_java_elim = crule {{ \(a:[768]) -> \(x:[384]) ->
371-
mul_java::sq_java (a, x) == p384_field::p384_safe_product (x, x) }};
368+
mul_java_elim <- assume_rule
369+
{{ \(a:[768]) -> \(x:[384]) -> \(y:[384]) ->
370+
mul_java::mul_java (a, x, y) == p384_field::p384_safe_product (x, y) }};
371+
372+
sq_java_elim <- assume_rule
373+
{{ \(a:[768]) -> \(x:[384]) ->
374+
mul_java::sq_java (a, x) == p384_field::p384_safe_product (x, x) }};
372375

373376
let basic_simps = [ ec_join_split
374377
, at12, at24
375378
];
376379
let ss3 = addsimps basic_simps ss2;
377-
let ss4 = addsimps' [mul_java_elim, sq_java_elim] ss3;
380+
let ss4 = addsimps [mul_java_elim, sq_java_elim] ss3;
378381
let ss = add_prelude_defs
379382
[ "bvUpd"
380383
, "bvAt"

examples/misc/rewrite.saw

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
let crule t = do { ss <- cryptol_ss ; rewrite ss t; };
1+
let ss = cryptol_ss ();
2+
let crule t = rewrite ss t;
23

34
rule <- crule {{ \(x:[384]) -> join ((split x) : [12][32]) == x }};
5+
rule_thm <- prove_print (admit "assume rule") rule;
6+
47
print "== Original version of rule:";
58
print_term rule;
6-
let rule_ss = addsimps' [rule] empty_ss;
9+
let rule_ss = addsimps [rule_thm] empty_ss;
710
t <- rewrite rule_ss rule;
811
print "== Rule rewritten with itself:";
912
print_term t;

saw-core/src/Verifier/SAW/Constant.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ import Verifier.SAW.Conversion
1818
scConst :: SharedContext -> Text -> Term -> IO Term
1919
scConst sc name t = do
2020
ty <- scTypeOf sc t
21-
ty' <- rewriteSharedTerm sc (addConvs natConversions emptySimpset) ty
21+
(_,ty') <- rewriteSharedTerm sc (addConvs natConversions emptySimpset :: Simpset ()) ty
2222
scConstant sc name t ty'

0 commit comments

Comments
 (0)