# User interface

This section of the manual describes the main user interface.

## Posing and solving a reachability problem

A reachability problem is characterized by an `AbstractSystem`

together with an `Options`

structure.

`Reachability.solve`

— Function.`solve(system, options) or solve(system, :key1 => val1, [...], keyK => valK)`

Solves a reachability problem s.t. the given options. If some options are not defined, we may fall back to default values.

**Input**

`system`

– a (discrete or continuoues) system specification`options`

– algorithm options for solving the problem`algorithm`

– (optional, default: dispatched on the system's type) the reachability algorithm for the computation

**Output**

A solution object whose content depends on the input options.

**Notes**

To see all available input options, see `keys(Reachability.available_keywords.dict)`

.

```
solve(system::InitialValueProblem{<:HybridSystem},
options::Options)
```

Interface to reachability algorithms for a hybrid system PWA dynamics.

**Input**

`system`

– hybrid system`options`

– options for solving the problem