Theory: tree

Parents


Type constants


Term constants


Axioms


Definitions

node_REP
|- (node_REP [] = 0) /\
   (!t h. node_REP (CONS h t) = SUC (h + h) * 2 EXP node_REP t)
Is_tree_REP
|- Is_tree_REP = (\t. !P. (!tl. EVERY P tl ==> P (node_REP tl)) ==> P t)
tree_TY_DEF
|- ?rep. TYPE_DEFINITION Is_tree_REP rep
tree_ISO_DEF
|- (!a. ABS_tree (REP_tree a) = a) /\
   (!r. Is_tree_REP r = REP_tree (ABS_tree r) = r)
node
|- !tl. node tl = ABS_tree (node_REP (MAP REP_tree tl))
dest_node
|- !t. dest_node t = (@p. t = node p)
bht
|- bht =
   PRIM_REC (\tr. tr = node [])
     (\res n tr. ?trl. (tr = node trl) /\ EVERY res trl)
HT
|- !t. HT t = (@n. bht n t /\ (!m. m < n ==> ~(bht m t)))
trf
|- !n f.
     trf n f =
     (@fn. !trl. HT (node trl) <= n ==> (fn (node trl) = f (MAP fn trl)))

Theorems

node_11
|- !tl1 tl2. (node tl1 = node tl2) = tl1 = tl2
tree_Induct
|- !P. (!tl. EVERY P tl ==> P (node tl)) ==> (!t. P t)
tree_Axiom
|- !f. ?!fn. !tl. fn (node tl) = f (MAP fn tl) tl