(* ========================================================================= *) (* Birthday problem. *) (* ========================================================================= *) prioritize_num();; (* ------------------------------------------------------------------------- *) (* Restricted function space. *) (* ------------------------------------------------------------------------- *) parse_as_infix("-->",(13,"right"));;(* ------------------------------------------------------------------------- *) (* Sizes. *) (* ------------------------------------------------------------------------- *)let funspace = new_definition `(s --> t) = {f:A->B | (!x. x IN s ==> f(x) IN t) /\ (!x. ~(x IN s) ==> f(x) = @y. T)}`;;(* ------------------------------------------------------------------------- *) (* The restriction to injective functions. *) (* ------------------------------------------------------------------------- *) (* ------------------------------------------------------------------------- *) (* So the actual birthday result. *) (* ------------------------------------------------------------------------- *) (* ------------------------------------------------------------------------- *) (* The usual explicit instantiation. *) (* ------------------------------------------------------------------------- *)let FUNSPACE_EMPTY =prove (`({} --> t) = {(\x. @y. T)}`,