Skip to content

Commit e46a996

Browse files
committed
applied Amelia's suggestions
1 parent c2190a0 commit e46a996

File tree

1 file changed

+36
-35
lines changed

1 file changed

+36
-35
lines changed

src/Data/Map/Base.lagda.md

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,63 +9,64 @@ open import Order.Total
99
```
1010

1111
```agda
12-
module SortedTrees (P : Poset lzero lzero) (idto : is-decidable-total-order P) where
12+
module Sorted-trees {o ℓ} {P : Poset o ℓ} (idto : is-decidable-total-order P) where
1313
1414
open is-decidable-total-order idto
1515
16-
record II : Type where
16+
record II : Type o where
1717
constructor 〚_,_〛
1818
field
1919
l : Ob
2020
r : Ob
2121
2222
open II
2323
24-
record Elt (i : II) : Type where
24+
record Elt (i : II) : Type (o ⊔ ℓ) where
2525
constructor elt
2626
field
2727
p : Ob
2828
lp : i .l ≤ p
2929
pr : p ≤ i .r
3030
31-
Valid : II -> Type
31+
Valid : II Type
3232
Valid i = i .l ≤ i .r
3333
34-
variable i : II
34+
private variable i : II
3535
36-
interleaved mutual
37-
data Tree : II -> Type
38-
size : Tree i -> Nat
36+
data Tree : II → Type (o ⊔ ℓ)
37+
size : Tree i → Nat
3938
40-
data _ where
41-
Leaf : Valid i -> Tree i
42-
Node : (p : Ob) -> (l : Tree 〚 i .l , p 〛) -> (r : Tree 〚 p , i .r 〛) -> (n : Nat) -> (n ≡ 1 + size l + size r) -> Tree i
39+
data Tree where
40+
Leaf : Valid i → Tree i
41+
Node : (p : Ob) (l : Tree 〚 i .l , p 〛) (r : Tree 〚 p , i .r 〛) (n : Nat)
42+
→ (n ≡ 1 + size l + size r) → Tree i
4343
44-
size (Leaf _) = 0
45-
size (Node _ _ _ n _) = n
44+
size (Leaf _) = 0
45+
size (Node _ _ _ n _) = n
4646
47-
interleaved mutual
48-
insert : Tree i -> Elt i -> Tree i
49-
insertSize : (t : Tree i) -> (e : Elt i) -> 1 + size t ≡ size (insert t e)
47+
insert : Tree i → Elt i → Tree i
48+
size-insert : (t : Tree i) → (e : Elt i) → 1 + size t ≡ size (insert t e)
5049
51-
insert (Leaf _) (elt p lp pr) = Node p (Leaf lp) (Leaf pr) 1 refl
52-
insert (Node q l r n pf) (elt p lp pr) with compare p q
53-
... | inl pq =
54-
let e' = elt p lp pq in
55-
let l' = insert l e' in
56-
let pf' = 1 + n ≡⟨ ap suc pf ⟩ 1 + (1 + size l + size r)
57-
≡⟨ ap ((λ k -> 1 + k + size r)) (insertSize l e') ⟩ 1 + (size l' + size r) ∎ in
58-
Node q l' r (1 + n) pf'
59-
... | inr qp =
60-
let e' = elt p qp pr in
61-
let r' = insert r e' in
62-
let pf' = 1 + n ≡⟨ ap suc pf ⟩ suc (suc (size l + size r))
63-
≡⟨ nat! ⟩ suc (size l + (suc (size r)))
64-
≡⟨ ap ((λ k -> 1 + size l + k)) (insertSize r e') ⟩ suc (size l + size r') ∎ in
65-
Node q l r' (1 + n) pf'
50+
insert (Leaf _) (elt p lp pr) = Node p (Leaf lp) (Leaf pr) 1 refl
51+
insert (Node q l r n pf) (elt p lp pr) with compare p q
52+
... | inl pq =
53+
let e' = elt p lp pq in
54+
let l' = insert l e' in
55+
let pf' = 1 + n ≡⟨ ap suc pf ⟩ 1 + (1 + size l + size r)
56+
≡⟨ ap ((λ k → 1 + k + size r)) (size-insert l e') ⟩
57+
1 + (size l' + size r) ∎ in
58+
Node q l' r (1 + n) pf'
59+
... | inr qp =
60+
let e' = elt p qp pr in
61+
let r' = insert r e' in
62+
let pf' = 1 + n ≡⟨ ap suc pf ⟩ suc (suc (size l + size r))
63+
≡⟨ nat! ⟩ suc (size l + (suc (size r)))
64+
≡⟨ ap ((λ k → 1 + size l + k)) (size-insert r e') ⟩
65+
suc (size l + size r') ∎ in
66+
Node q l r' (1 + n) pf'
6667
67-
insertSize (Leaf x) e = refl
68-
insertSize (Node q _ _ _ _) (elt p _ _) with compare p q
69-
... | inl pq = refl
70-
... | inr qp = refl
68+
size-insert (Leaf x) e = refl
69+
size-insert (Node q _ _ _ _) (elt p _ _) with compare p q
70+
... | inl pq = refl
71+
... | inr qp = refl
7172
```

0 commit comments

Comments
 (0)