|- !P. TRP P = (@trp. !v tl. trp (Node v tl) = P v tl /\ EVERY trp tl)
|- !P v tl. TRP P (Node v tl) = P v tl /\ EVERY (TRP P) tl
|- !f g. MAP (f o g) = MAP f o MAP g
|- !REP ABS P. (!a. ABS (REP a) = a) /\ (!r. TRP P r = REP (ABS r) = r) ==> (!f. ?!fn. !v tl. P v (MAP REP tl) ==> (fn (ABS (Node v (MAP REP tl))) = f (MAP fn tl) v tl))
|- !P. (?v. P v []) ==> (?t. TRP P t)