@@ -187,7 +187,7 @@ the functional extensionality axiom, which is discussed in the `Logic` chapter.)
187
187
188
188
First , the empty map returns its default element for all keys :
189
189
190
- > t_apply_empty : t_empty v x = v
190
+ > t_apply_empty : t_empty v x = v
191
191
> t_apply_empty = ? t_apply_empty_rhs
192
192
193
193
$\ square$
@@ -212,7 +212,7 @@ a different key \idr{x2} in the resulting map, we get the same result that
212
212
\ idr{m} would have given :
213
213
214
214
> t_update_neq : Not (x1 = x2) -> (t_update x1 v m) x2 = m x2
215
- > t_update_neq x = ? t_update_neq_rhs
215
+ > t_update_neq neq = ? t_update_neq_rhs
216
216
217
217
$\ square$
218
218
@@ -276,7 +276,7 @@ we do the updates.
276
276
277
277
> t_update_permute : Not (x2 = x1) -> t_update x1 v1 $ t_update x2 v2 m
278
278
> = t_update x2 v2 $ t_update x1 v1 m
279
- > t_update_permute x = ? t_update_permute_rhs
279
+ > t_update_permute neq = ? t_update_permute_rhs
280
280
281
281
$\ square$
282
282
@@ -302,20 +302,29 @@ partial maps.
302
302
> apply_empty : empty {a} x = Nothing {a}
303
303
> apply_empty = Refl
304
304
305
- \ todo[inline]{Finish }
306
-
307
305
> update_eq : (update x v m) x = Just v
308
- > update_eq = ? update_eq_rhs
306
+ > update_eq {x} {v} {m} =
307
+ > rewrite t_update_eq {x} {v= Just v} {m} in
308
+ > Refl
309
309
310
310
> update_neq : Not (x2 = x1) -> (update x2 v m) x1 = m x1
311
- > update_neq x = ? update_neq_rhs
311
+ > update_neq {x1} {x2} {v} {m} neq =
312
+ > rewrite t_update_neq neq {x1= x2} {x2= x1} {v= Just v} {m} in
313
+ > Refl
312
314
313
315
> update_shadow : update x v2 $ update x v1 m = update x v2 m
314
- > update_shadow = ? update_shadow_rhs
316
+ > update_shadow {x} {v1} {v2} {m} =
317
+ > rewrite t_update_shadow {x} {v1= Just v1} {v2= Just v2} {m} in
318
+ > Refl
315
319
316
320
> update_same : m x = Just v -> update x v m = m
317
- > update_same prf = ? update_same_rhs
321
+ > update_same {x} {m} {v} prf =
322
+ > rewrite sym prf in
323
+ > rewrite t_update_same {x} {m} in
324
+ > Refl
318
325
319
326
> update_permute : Not (x2 = x1) -> update x1 v1 $ update x2 v2 m
320
327
> = update x2 v2 $ update x1 v1 m
321
- > update_permute x = ? update_permute_rhs
328
+ > update_permute {x1} {x2} {v1} {v2} {m} neq =
329
+ > rewrite t_update_permute neq {x1} {x2} {v1= Just v1} {v2= Just v2} {m} in
330
+ > Refl
0 commit comments