@@ -658,28 +658,26 @@ module {:options "/functionSyntax:4" } Canonize {
658
658
}
659
659
}
660
660
661
- // command line tools that say /vcsSplitOnEveryAssert fail without the {:vcs_split_on_every_assert false}
662
- lemma {:vcs_split_on_every_assert false } InputIsInput (origData : AuthList , input : CanonCryptoList )
663
- requires forall val < - input :: exists x :: x in origData && Updated2 (x, val, DoDecrypt)
664
- ensures forall i | 0 <= i < |input| :: exists x :: x in origData && Updated2 (x, input[i], DoDecrypt)
661
+ ghost predicate Updated2Exists (origData : AuthList , item : CanonCryptoItem )
665
662
{
666
- assert forall i | 0 <= i < |input| :: input[i] in input;
667
- forall i | 0 <= i < |input| ensures exists x :: x in origData && Updated2 (x, input[i], DoDecrypt) {
668
- var x :| x in origData && Updated2 (x, input[i], DoDecrypt);
669
- }
670
- assert forall i | 0 <= i < |input| :: exists x :: x in origData && Updated2 (x, input[i], DoDecrypt);
663
+ exists x :: x in origData && Updated2 (x, item, DoDecrypt)
671
664
}
672
665
673
- // command line tools that say /vcsSplitOnEveryAssert fail without the {:vcs_split_on_every_assert false}
674
- lemma {:vcs_split_on_every_assert false } InputIsInput2 (origData : CryptoList , input : CanonCryptoList )
675
- requires forall val < - input :: exists x :: x in origData && Updated5 (x, val, DoEncrypt)
676
- ensures forall i | 0 <= i < |input| :: exists x :: x in origData && Updated5 (x, input[i], DoEncrypt)
666
+ ghost predicate Updated5Exists (origData : CryptoList , item : CanonCryptoItem )
667
+ {
668
+ exists x :: x in origData && Updated5 (x, item, DoEncrypt)
669
+ }
670
+
671
+ lemma InputIsInput (origData : AuthList , input : CanonCryptoList )
672
+ requires forall val < - input :: Updated2Exists (origData, val)
673
+ ensures forall i | 0 <= i < |input| :: Updated2Exists (origData, input[i])
674
+ {
675
+ }
676
+
677
+ lemma InputIsInput2 (origData : CryptoList , input : CanonCryptoList )
678
+ requires forall val < - input :: Updated5Exists (origData, val)
679
+ ensures forall i | 0 <= i < |input| :: Updated5Exists (origData, input[i])
677
680
{
678
- assert forall i | 0 <= i < |input| :: input[i] in input;
679
- forall i | 0 <= i < |input| ensures exists x :: x in origData && Updated5 (x, input[i], DoEncrypt) {
680
- var x :| x in origData && Updated5 (x, input[i], DoEncrypt);
681
- }
682
- assert forall i | 0 <= i < |input| :: exists x :: x in origData && Updated5 (x, input[i], DoEncrypt);
683
681
}
684
682
685
683
lemma CryptoUpdatedAuthMaps (origData : AuthList , input : CanonCryptoList , output : CryptoList )
0 commit comments