# Trigonometric Equation Solving: Not Terminating

## The Background

I want to write a script which is able to do the following:

**INPUT:**- A list of triangle items. These items are considered as given.`x`

**INPUT:**- A list of triangle items. We want to know the abstract formulas of these items.`y`

**OUTPUT:**- A list of formulas to calculate the items from`z`

`y`

For example:

**INPUT:**-`x`

`[alpha, beta]`

(considered as given)**INPUT:**-`y`

`[gamma]`

(we want to know the formula of`gamma`

)**OUTPUT:**-`z`

`[gamma == pi - alpha - beta]`

I want to do that using `sage`

's `solve()`

.

## My Problem:

This is a simplified script. It is just able to output formulas for `alpha`

, `beta`

and `gamma`

when `a`

, `b`

and `c`

are considered as given:

```
rings = RR[('a', 'b', 'c')].gens()[:3] # considered as given
x = dict([(str(rings_), rings_) for rings_ in rings])
varbs = SR.var(['alpha', 'beta', 'gamma']) # looking for `alpha`, `beta` and `gamma`
x.update([(str(varbs_), varbs_) for varbs_ in varbs])
print solve([
#x['a']**2 == x['b']**2 + x['c']**2 - 2*x['b']*x['c']*cos(x['alpha']),
#x['b']**2 == x['a']**2 + x['c']**2 - 2*x['a']*x['c']*cos(x['beta']),
#x['c']**2 == x['a']**2 + x['b']**2 - 2*x['a']*x['b']*cos(x['gamma']),
x['alpha'] == arccos((x['a']**2 - x['b']**2 - x['c']**2) / 2*x['b']*x['c']),
x['beta'] == arccos((x['b']**2 - x['a']**2 - x['c']**2) / 2*x['a']*x['c']),
x['gamma'] == arccos((x['c']**2 - x['a']**2 - x['b']**2) / 2*x['a']*x['b']),
#pi == x['alpha'] + x['beta'] + x['gamma'],
], [
x['alpha'],
x['beta'],
x['gamma'],
])
```

This script is working correctly and outputs:

```
[
[alpha == pi - arccos(-0.5*a^2*b*c + 0.5*b^3*c + 0.5*b*c^3), beta == pi - arccos(0.5*a^3*c - 0.5*a*b^2*c + 0.5*a*c^3), gamma == arccos(-0.5*a^3*b - 0.5*a*b^3 + 0.5*a*b*c^2)]
]
```

I wanted to extend `solve()`

's knowledge base in order to be able to solve more complicated problems later on. But when I tried to uncomment the `#`

lines and ran the script again, `solve()`

didn't terminate any more.

## My Question:

- Why doesn't
`solve()`

terminate when I uncomment the`#`

lines? - How can I get
`sage`

to terminate? Or: How can I work around this problem?

Thanks - if anything's unclear, please leave a comment concerning that.