A few days ago I [asked](https://mathematica.stackexchange.com/questions/1837) about using differentiation to find a line that is tangent to a curve at a given point. [J.M.](https://mathematica.stackexchange.com/users/50) provided a very elegant way to solve these kinds of problems in Mathematica.

Now I'd like to find a line that is tangent to $x^2+xy+y^2=3$ at $(1,1)$ using implicit differentiation.

To find the slope at $(1,1)$ I used this code:

```
x^2 + x y[x] + y[x]^2 == 3;
D[%, x];
% /. x -> 1;
% /. y[1] -> 1;
Reduce[%, y'[1]]

```

which yields:

```
y'[1] == -1

```

Now to find the equation of the line:

```
y[x] - y[a] == y'[a] (x - a);
% /. a -> 1;
% /. y[1] -> 1;
% /. y'[1] -> -1;
Reduce[%, y[x]]

```

which yields:

```
y[x] == 2 - x

```

The answer is correct, but of course the method is much less elegant than for the case of non-implicit differentiation. Is there a better way than the one given above to solve the problem?