Kind/book/BBT.new_node.kind2
2024-02-21 12:10:30 -03:00

18 lines
501 B
Plaintext

// Creates a new node with size = 1 + (max lft.size rgt.size)
BBT.new_node
: ∀(K: *)
∀(V: *)
∀(key: K)
∀(val: V)
∀(lft: (BBT K V))
∀(rgt: (BBT K V))
(BBT K V)
= λK λV λkey λval λlft λrgt
let P = λx(BBT K V)
let new = λlft.size λlft
let P = λx(BBT K V)
let new = λrgt.size λrgt
let new_size = #(+ #1 (U60.max rgt.size lft.size))
(BBT.bin K V new_size key val lft rgt)
(~(BBT.got_size K V rgt) P new)
(~(BBT.got_size K V lft) P new)