Theory: rec_type

Parents


Type constants


Term constants


Axioms


Definitions

TRP_DEF
|- !P. TRP P = (@trp. !v tl. trp (Node v tl) = P v tl /\ EVERY trp tl)

Theorems

TRP
|- !P v tl. TRP P (Node v tl) = P v tl /\ EVERY (TRP P) tl
MAP_o
|- !f g. MAP (f o g) = MAP f o MAP g
TY_DEF_THM
|- !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))
exists_TRP
|- !P. (?v. P v []) ==> (?t. TRP P t)