How to interpret Variance Inflation Factor (VIF) results?
The Variance Inflation Factor (VIF) looks at how well a single $x_i$ is determined by all the other $x_i$ (jointly) in your model.
How does the VIF work?

For each $x_i$ in your model, you run a (auxiliary) linear regression:
$$ x_{1,i} = \beta_1 + \beta_2 x_{2,i} + ... + \beta_n x_{n,i} + u .$$
You retrieve the $R^2$ for each of these models and calculate the $VIF$:
$$ VIF_1 = 1 / (1-R^2_1). $$

Example in R:
Calculate VIF:
library(car)
library(ISLR)
reg = lm(mpg~disp+wt+qsec+hp, data=mtcars)
vif(reg)

Result:
    disp       wt     qsec       hp 
7.985439 6.916942 3.133119 5.166758 

Do this manually (for disp)
rsq = summary(lm(disp~wt+qsec+hp, data=mtcars))$r.squared
1/(1-rsq)

Result:
7.985439

What about the $VIF=10$ rule of thumb?
$VIF = 10$ is equal to having an $R^2=0.9$ in the auxiliary regression in step 1 above (because $1/(1-0.9)=10$). This means that your other $x_i$ (in the model) explain the $x_i$ under consideration to a large extent (90% if you want to say so). This of course is just a rule of thumb.
In essence, the $VIF$ boils down to the question: &quot;How well is one of my $x_i$ explained by all other $x$ jointly&quot;.
In your example tax has the highes $VIF$ (tax=7.279426). This means that the auxiliary regression (step 1) for tax has an $R^2=0.862627$. This means that tax is well explained by all the other $x$ so that there may be a problem with multicollinearity.