generate_data_from_operation_substitutions(_, _, _, [], _, Acc, Acc) :-
!.
generate_data_from_operation_substitutions(Env, AR, AbsoluteFilePath-MachineName, [(OperationName,OpReturnVars,OperationBody)|T], NewEnv, Acc, OperationData) :-
format('.', []),
b_get_machine_operation_typed_parameters(OperationName, Parameters),
b_get_machine_operation_any_parameters(OperationName, AnyParameters),
append(Parameters, AnyParameters, TNParameters),
findall(NP, ( member(P, TNParameters),
add_texpr_infos(P, [parameter], NP)
), NParameters),
get_ground_truth_from_operation_body(OpReturnVars, OperationBody, NParameters, GroundTruth),
!,
get_number_random_list(AR, [], RandomA),
length(NParameters, ParameterAmount),
select((global_ground_truth_params,TGlobalGt), GroundTruth, RestGt),
extend_ground_truth(parameter, ParameterAmount, TGlobalGt, GlobalGt),
enumerate_ids([], 'P', NParameters, EParameters),
Env = [NormalizedStrings,NormalizedSets,NormalizedIds,NOperationNames],
append(EParameters, NormalizedIds, NNormalizedIds),
Env1 = [NormalizedStrings,NormalizedSets,NNormalizedIds,NOperationNames],
normalize_ids_in_ground_truth(NormalizedIds, [(global_ground_truth_params,GlobalGt)|RestGt], NGroundTruth),
generate_data_from_operation_substitutions_aux(Env1, 0, RandomA, AbsoluteFilePath-MachineName, OperationName, Env2, [], Data),
generate_data_from_operation_substitutions(Env2, AR, AbsoluteFilePath-MachineName, T, NewEnv, [(Data,OperationName,NGroundTruth)|Acc], OperationData),
!.
generate_data_from_operation_substitutions(Env, AR, AbsoluteFilePath-MachineName, [(_,_,_)|T], NewEnv, Acc, OperationData) :-
generate_data_from_operation_substitutions(Env, AR, AbsoluteFilePath-MachineName, T, NewEnv, Acc, OperationData),
!.