Examples of sampling usage for hd:
Exapmle 0:
Let(state0=states[time=0], state1=states[time=300] in:
coords(eq_reg_1, X, Y) \and coords(eq_reg_2, 1, 0)
=> intersect(eq_reg_1, eq_reg_2, state)
where(eq_reg_1=state0.block0.eq_reg_1 \and eq_reg_2 = state1.block0.eq_reg_2))
So this proposal is asking whether from time t0=0 to t1=300 plasma (which represented with eq_reg_1) is spreading to eq_reg_2

pic 0
Example 1:
if sampler of equation eq_id can be defined like so:
eq_sampler_grammar(eq_id, params):
# terms for sampling:
# (ex: [func, pow])
terms_list = [term1, term2, ...]
# generator of syntacticaly correct sents:
# (ex (for [func, pow]): U' = sin(x) +U^3 or U' = sin(x) +U^3)
sampling_alg = sampling_with_grammar(terms_list)
where
sampling_with_grammar
generate random sent from
terms_list
with,
despite randomness, is syntacticaly correct (like
"U' = sin(x) +U^3"
or
"U' = sin(x) +U^3")
).
or
eq_sampler_params(eq_id, params):
eq = Eq()(X, Y)
params(X\in [0,10], Y\in [0,10])
sampling_alg = sampling_for_params(eq, params)
Then it is possible to create proposals like so:
Let(state0=states[time=0], state1=states[time=300] in:
init_region(eq_init_id, X, Y, state0) \and border(eq_bound_id, X, Y, \alpha, state0) \and ...
=> reg_3(eq_fixed_id, x=1, y=0, r=1, state1))
In this case eq_init_id, X, Y, eq_bound_id, \alpha will be sampled in such a way that reg_3 in coords (1, 0) can be described with eq_fixed_id in radius r=1 after 300 seconds. where eq_init_id, eq_bound_id can be chosen entirely random from given terms (with eq_sampler_grammar), or it can be fixed, but with unknown params (like: U'=b*D[U,{x,a}]+c with eq_sampler_params).
