Formalizing Julia in Lean (and finding 400+ bugs in Base)

Many abstract types in Julia don’t have precise interface definitions. (For instance, it’s unclear what properties a Number has.) Without that, how can you prove anything about functions accepting such types?