I am having trouble creating a dictionary from symbols to numbers for defining an `ODEProblem`

. In essence, the problem boils down to having to extract the “base” symbol from a symbolic array. My code is structured in such a way that the function as input gets an `ODESystem`

from `ModelingToolkit.jl`

. So I need to be able to make the `symbol => value`

map using only this system.

A sketch of this issue can be seen as follows. It considers two modules, one that creates the system, and one that should create and `ODEProblem`

from it to simulate it using `DifferentialEquations`

. The specific system at hand does not matter, so I just use a simple linear system for now.

```
# create_sys.jl
function create_system(S)
@variables t
@variables (x(t))[1:S]
@variables a[1:S] b[1:S]
D = Differential(t)
eqns = [D(x[i]) ~ a[i]*x[i] + b[i] for i in 1:S]
@named odesys = ODESystem(eqns, t)
return odesys
end
```

and then the function that I do not know how to write

```
# create_prob.jl
function create_problem(system, X0, avals, bvals, tspan)
params = parameters(system)
# Filter parameters and assign [a[i] => avals[i] ...] and [b[i] => bvals[i] ...]
# [...]
# pmap = ...
prob = ODEProblem(complete(system), X0, tspan, pmap)
end
```

I am aware of the `Symbolics.arguments(...)`

function, which could potentially be used to filter, but it returns a `SymbolicUtils.BasicSymbolic{Matrix{Real}}`

for some reason, and I do not know how to do something like, e.g., `:r == argument(symbol) ? ... : ...`

Any help on this topic is greatly appreciated.