2) Given a public key, you can calculate the address.
Check this wiki page for instructions on how addresses are calculated from public keys.
1) Well, you can verify that a public key (a point) is on the secp256k1 curve (the elliptic curve used by Bitcoin). That proves that a corresponding private key exists (but you don't know which one). I don't have a reference off the top of my head for you, but Google can probably help.