input: Write a python function to train a Linear Regression model, make predictions, and evaluate its performance using mean squared error. Ensure the function saves the trained model to a file named 'model.sav'.
  assert isinstance(train_and_evaluate_model(df), float)
  assert train_and_evaluate_model(pd.DataFrame({'A': [1, 2, 3], 'Interest.Rate': [4, 5, 6]})) == 0.0
output: def train_and_evaluate_model(df):
      from sklearn.model_selection import train_test_split
      from sklearn.linear_model import LinearRegression
      from sklearn.metrics import mean_squared_error
      import pickle
  
      X = df.drop('Interest.Rate', axis=1)
      y = df['Interest.Rate']
      
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      model = LinearRegression()
      model.fit(X_train, y_train)
      
      predictions = model.predict(X_test)
      mse = mean_squared_error(y_test, predictions)
      
      with open('model.sav', 'wb') as model_file:
          pickle.dump(model, model_file)
      
      return mse