I've probably missed a question already asked because this topic seems common, but I've looked at several, for example. Using the result of the resolution in later calculations

and I'm a little stuck. I did not understand the use of `Prefix`

in this one (which has anyway only one solution): Use Resolve Outputs for Further Calculations

Even this one: The use of Solve's result in later calculations that looked promising does not seem to have a way of automatically selecting solutions (this one had more than one). Maybe I do not know how to use these methods, but I can not establish the link …

If I have something like

```
eq1 = x ^ 2 - 3 * y ^ 2 + 3
ground = reduce[eq1 == 0, y, Complexes]
ground[[1]][[2]]eq2[i_] = 100 + (y / y) -> sol[[i]][[2]])
Part :: pkspec1: The expression i can not be used as a part specification.
```

I made sure not to use SetDelayed, and I know I can do things like,

```
100 + (y / y) -> sol[[1]][[2]])
```

or `100 + y`

is a new function but the `1`

is chosen automatically by the script itself and can not be hard-coded.

What kind of methodology can be used when there are functions calling calling functions, etc., which ultimately depend on an automatic choice of a set of solutions?

PS.

I've also tried naming a set of rules, but I can not keep the left side unrated (like a 'in Lisp'), how can I control the output of the reduction function?

```
solSet = Table[Unevaluated[y] -> y /. y -> ground[[i]][[2]], {i, 1, 2}]
```

I imagine that it is more likely to be (although it always fails)

```
solSet = {ToRules[sol]}
eq3[i_] = 100 + y / .solSet[[i]]
```

What I would like is (in pseudo-code):

```
eq1 = x ^ 2 -3 * y ^ 2 + 3
ground = reduce[eq1==0,y,Complexes]
eq2[i_] = 100 + sol[[i]][[2]]eq2[1] = 100 + solution_one
eq2[2] = 100 + solution_two
eq3[i_,j_] = A * eq2[i] + B * eq2[j];
etc.
etc.
```