|- !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)