833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
|
# File 'lib/adsl/spass/spass_ds_extensions.rb', line 833
def resolve_action_objset(translation, ps, var)
context = translation.context
pred = translation.create_predicate :one_of, context.level + 1
translation.gen_formula_for_unique_arg(pred, context.level)
translation.reserve_names context.p_names, :o do |subps, o|
co_in_objset = @objset.resolve_action_objset(translation, subps, o)
translation.create_formula FOL::ForAll.new(subps, FOL::Equiv.new(
FOL::Exists.new(o, FOL::And.new(translation.prev_state[subps, o], pred[subps, o])),
FOL::Exists.new(o, FOL::And.new(translation.prev_state[subps, o], co_in_objset))
))
translation.create_formula FOL::ForAll.new(subps, o,
FOL::Implies.new(pred[subps, o], FOL::And.new(translation.prev_state[subps, o], co_in_objset))
)
end
return pred[ps, var]
end
|