@@ -92,68 +92,21 @@ ArrayDeque
92
92
93
93
Note: peekFirst would be very similar to peekLast
94
94
95
- File
96
- ======
97
- * ` read(filereader(file(f, d, l, n), p)) == d[p] `
98
- * ` read!(filereader(file(f, d, l, n), p)) == filereader(file(f, d, l, n), p+1) `
99
- * ` ready(filereader(file(f, d, l, n), p)) == ITE(p != l-1, True, False) `
100
-
101
- HashSet
102
- =======
103
-
104
- * ` add!(add!(s, e1), e2) == ITE(e2.equals(e1), add!(s, e1), add!(add!(s, e2), e1)) `
105
- * ` add(add!(s, e1), e2) == ITE(e2.equals(e1), False, add(s, e2)) `
106
- * ` add([], e) == True `
107
- * ` remove!(add!(s, e1), e2) == ITE(e2.equals(e1), s, add!(remove!(s, e2), e1)) `
108
- * ` remove!([], e) == [] `
109
- * ` remove(add(s, e1), e2) == ITE(e2.equals(e1), True, remove(s, e2)) `
110
- * ` remove([], e) == False `
111
- * ` size(add(s, _)) == size(s) + 1 `
112
- * ` size([]) == 0 `
113
-
114
- TreeSet
115
- =======
116
-
117
- * ` add!(add!(s, e1), e2) == ITE(e2.equals(e1), add!(s, e1), add!(add!(s, e2), e1)) `
118
- * ` clear!(_) == [] `
119
- * ` add(add!(s, e1), e2) == ITE(e2.equals(e1), False, add(s, e2)) `
120
- * ` add([], e) == True `
121
- * ` contains(add!(s, e1), e2) == ITE(e2.equals(e1), True, contains(s, e2)) `
122
-
123
- ArrayDeque
124
- ==========
125
-
126
- * ` removeFirst!(addFirst!(d, e)) == d `
127
- * ` removeFirst!(addLast!(d, e)) == ITE(size(d)==0, [], addLast!(removeFirst!(d), e)) `
128
- * ` removeFirst!([]) == [] `
129
- * ` removeFirst(addFirst!(d, e)) == e `
130
- * ` removeFirst(addLast!(d, e)) == ITE(size(d)==0, e, removeFirst(d)) `
131
- * ` removeFirst([]) == null // Note: In Java this is an exception `
132
- * ` removeLast!(addLast!(d, e)) == d `
133
- * ` removeLast!(addFirst!(d, e)) == ITE(size(d)==0, [], addFirst!(removeLast!(d), e)) `
134
- * ` removeLast!([]) == [] `
135
- * ` removeLast(addLast!(d, e)) == e `
136
- * ` removeLast(addFirst!(d, e)) == ITE(size(d)==0, e, removeLast(d)) `
137
- * ` removeLast([]) == null // Note: In Java this is an exception `
138
- * ` peekFirst(addFirst!(d, e)) == e `
139
- * ` peekFirst(addLast!(d, e)) == ITE(size(d)==0, e, peekFirst(d)) `
140
- * ` peekLast(addLast!(d, e)) == e `
141
- * ` peekLast(addFirst!(d, e)) == ITE(size(d)==0, e, peekLast(d)) `
142
- * ` size(addFirst!(d, e)) == size(d) + 1 `
143
- * ` size(addLast!(d, e)) == size(d) + 1 `
144
- * ` size([]) == 0 `
145
- * ` isEmpty(s) == ITE(size(s)==0, True, False) `
95
+ Cipher (with init and doFinal (one arg))
96
+ =====
97
+ * ` doFinal(init!(c1, m1, k1), doFinal(init!(c2, m2, k2), t)) --> ` <br />
98
+ ` m1==DEC && m2 == ENC && k1.equals(k2) ? t : GARBAGE `
146
99
147
- DES Example (private key -- symmetric crypto)
148
- ===========
100
+ Note: The benchmarks we used with Cipher varied a bit in the versions of ` doFinal ` used (i.e. how many args passed), however, all of the axioms for Cipher were similar to this.
149
101
150
- * ` let g = getInstance("DES/ECB/PKCS5Padding") in ` < br />
151
- ` let t = doFinal(init(g, "Cipher.ENCRYPT_MODE", k1), t1) in ` < br />
152
- ` doFinal(init(g,"Cipher.DECRYPT_MODE", k2 ), t) == ITE(k2.equals(k1), t1, GARBAGE) `
102
+ Mac
103
+ ==
104
+ * ` doFinal(init!(m, s ), t) --> t `
153
105
154
- RSA Example (public key -- asymmetric crypto)
155
- ===========
106
+ BufferedReader
107
+ =============
108
+ * ` readLine([f]) --> f.getLine(0) `
109
+ * ` readLine(readLine!(b)) --> readLineCount(b, 1) `
110
+ * ` readLineCount([f], i) --> f.getLine(i) `
111
+ * ` readLineCount(readLine!(b), i) --> readLineCount(b, i+1) `
156
112
157
- * ` let g = getInstance("RSA/ECB/PKCS1Padding") in ` <br />
158
- ` let t = doFinal(init(g, "Cipher.ENCRYPT_MODE", getPublic(k1)), t1) in ` <br />
159
- ` doFinal(init(g,"Cipher.DECRYPT_MODE", getPrivate(k2)), t) == ITE(k2.equals(k1), t1, GARBAGE) `
0 commit comments