define_new_type_bijections : {name:string, ABS:string, REP:string, tyax:thm} -> thm
|- ?rep:nty->ty. TYPE_DEFINITION P rep
name is the name under which the constant definition (a constant specification, in fact) made by define_new_type_bijections will be stored in the current theory segment. tyax must be a definitional axiom of the form returned by new_type_definition. ABS and REP are the user-specified names for the two constants that are to be defined. These constants are defined so as to denote mutually inverse bijections between the defined type, whose definition is given by tyax, and the representing type of this defined type.
If th is a theorem of the form returned by new_type_definition:
|- ?rep:newty->ty. TYPE_DEFINITION P rep
define_new_type_bijections{name="name",ABS="abs",REP="rep",tyax=th} th
|- (!a. abs(rep a) = a) /\ (!r. P r = (rep(abs r) = r))