In forward chaining, a model controller makes a prediction from the RHS and also makes an imdl to show how the model was instantiated. The example below is for the reuse model M6 in hand-grab-sphere (simplified):
fact_281 matches the LHS and binds variables T0 and T1 to the timings 200ms and 800ms. Note that variables T0 and T1 are also in the model's template arguments. Then the controller matches with requirement fact128 where the template arguments have the more "narrow" time interval 600ms to 700ms. This updates variables T0 and T1 to these more narrow values. Then the forward guards are used to compute the RHS time interval variables T2 and T3 which you can see in prediction fact_290 as 700ms and 800ms. So far, so good. Then the controller makes imdl fact_291 to show how the model was instantiated to make the prediction. But the template arguments are still 200ms and 800ms. These are not the values that were used to make the prediction. They should be 600ms and 700ms.
When the model controller makes the imdl fact_291 the binding map has the correct values for T0 and T1, but these haven't been used to update the imdl.
In forward chaining, a model controller makes a prediction from the RHS and also makes an imdl to show how the model was instantiated. The example below is for the reuse model M6 in hand-grab-sphere (simplified):
fact_281
matches the LHS and binds variablesT0
andT1
to the timings 200ms and 800ms. Note that variablesT0
andT1
are also in the model's template arguments. Then the controller matches with requirementfact128
where the template arguments have the more "narrow" time interval 600ms to 700ms. This updates variablesT0
andT1
to these more narrow values. Then the forward guards are used to compute the RHS time interval variablesT2
andT3
which you can see in predictionfact_290
as 700ms and 800ms. So far, so good. Then the controller makes imdlfact_291
to show how the model was instantiated to make the prediction. But the template arguments are still 200ms and 800ms. These are not the values that were used to make the prediction. They should be 600ms and 700ms.When the model controller makes the imdl
fact_291
the binding map has the correct values forT0
andT1
, but these haven't been used to update the imdl.