@tuprolog/arg2p 0.12.1 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/arg2p-core.js CHANGED
@@ -80,15 +80,15 @@
80
80
  var matchAny = kotlin_it_unibo_tuprolog_dsl_unify.$_$.a;
81
81
  var unifyAny = kotlin_it_unibo_tuprolog_dsl_unify.$_$.c;
82
82
  var solverOf = kotlin_it_unibo_tuprolog_dsl_solve.$_$.a;
83
+ var LogicProgrammingScopeWithResolution = kotlin_it_unibo_tuprolog_dsl_solve.$_$.c;
83
84
  var LogicProgrammingScopeWithPrologStandardLibrary = kotlin_it_unibo_tuprolog_dsl_core.$_$.h4;
84
85
  var BaseLogicProgrammingScope = kotlin_it_unibo_tuprolog_dsl_core.$_$.e;
85
- var LogicProgrammingScopeWithResolution = kotlin_it_unibo_tuprolog_dsl_solve.$_$.c;
86
- var Scope = kotlin_it_unibo_tuprolog_core.$_$.r1;
87
- var LogicProgrammingScopeWithSubstitutions = kotlin_it_unibo_tuprolog_dsl_core.$_$.o4;
88
- var LogicProgrammingScopeWithUnification = kotlin_it_unibo_tuprolog_dsl_unify.$_$.j;
89
- var MinimalLogicProgrammingScope = kotlin_it_unibo_tuprolog_dsl_core.$_$.c5;
90
86
  var LogicProgrammingScopeWithOperators = kotlin_it_unibo_tuprolog_dsl_core.$_$.w1;
87
+ var LogicProgrammingScopeWithUnification = kotlin_it_unibo_tuprolog_dsl_unify.$_$.j;
88
+ var LogicProgrammingScopeWithSubstitutions = kotlin_it_unibo_tuprolog_dsl_core.$_$.o4;
89
+ var Scope = kotlin_it_unibo_tuprolog_core.$_$.r1;
91
90
  var LogicProgrammingScopeWithTheories = kotlin_it_unibo_tuprolog_dsl_theory.$_$.h;
91
+ var MinimalLogicProgrammingScope = kotlin_it_unibo_tuprolog_dsl_core.$_$.c5;
92
92
  var Companion_getInstance_0 = kotlin_it_unibo_tuprolog_core.$_$.i;
93
93
  var lazy = kotlin_kotlin.$_$.ra;
94
94
  var KProperty1 = kotlin_kotlin.$_$.g7;
@@ -220,7 +220,7 @@
220
220
  initMetadataForClass(Arg2pSolver$Companion$of$1, VOID, VOID, VOID, [Arg2pSolver]);
221
221
  initMetadataForCompanion(Companion);
222
222
  initMetadataForObject(Arg2pSolverFactory, 'Arg2pSolverFactory');
223
- initMetadataForClass(PrologWithArgumentationImpl, 'PrologWithArgumentationImpl', PrologWithArgumentationImpl, VOID, [LogicProgrammingScopeWithPrologStandardLibrary, BaseLogicProgrammingScope, LogicProgrammingScopeWithResolution, Scope, LogicProgrammingScopeWithSubstitutions, LogicProgrammingScopeWithUnification, MinimalLogicProgrammingScope, LogicProgrammingScopeWithOperators, LogicProgrammingScopeWithTheories]);
223
+ initMetadataForClass(PrologWithArgumentationImpl, 'PrologWithArgumentationImpl', PrologWithArgumentationImpl, VOID, [LogicProgrammingScopeWithResolution, LogicProgrammingScopeWithPrologStandardLibrary, BaseLogicProgrammingScope, LogicProgrammingScopeWithOperators, LogicProgrammingScopeWithUnification, LogicProgrammingScopeWithSubstitutions, Scope, LogicProgrammingScopeWithTheories, MinimalLogicProgrammingScope]);
224
224
  function get_theoryOperators() {
225
225
  return Companion_getInstance_0().DEFAULT;
226
226
  }
@@ -250,6 +250,7 @@
250
250
  initMetadataForClass(AbstractWithLib, 'AbstractWithLib', VOID, VOID, [Primitive]);
251
251
  initMetadataForClass(WithLib, 'WithLib', VOID, AbstractWithLib);
252
252
  initMetadataForClass(WithLibInNewContext, 'WithLibInNewContext', VOID, AbstractWithLib);
253
+ initMetadataForClass(ResetLoader, 'ResetLoader', VOID, VOID, [Primitive]);
253
254
  initMetadataForCompanion(Companion_0);
254
255
  initMetadataForClass(DynamicLoader, 'DynamicLoader', VOID, VOID, [ArgLibrary]);
255
256
  initMetadataForClass(EngineInterfaceBase, 'EngineInterfaceBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
@@ -272,17 +273,29 @@
272
273
  initMetadataForClass(DefeasiblePreferencesHandlerBase, 'DefeasiblePreferencesHandlerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
273
274
  initMetadataForClass(GenericDefeasiblePreferencesHandlerBase, 'GenericDefeasiblePreferencesHandlerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
274
275
  initMetadataForClass(StrictPreferencesHandlerBase, 'StrictPreferencesHandlerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
276
+ initMetadataForObject(AdmissibleLabeller, 'AdmissibleLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
275
277
  initMetadataForObject(BinaryStatementLabeller, 'BinaryStatementLabeller', VOID, VOID, [ArgLibrary, Loadable]);
276
278
  initMetadataForObject(BinaryLabelling, 'BinaryLabelling', VOID, RuleWrapper);
277
279
  initMetadataForClass(BpCompleteLabellerBase, 'BpCompleteLabellerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
278
280
  initMetadataForClass(BpLabellerBase, 'BpLabellerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
279
281
  initMetadataForClass(BpPartialLabellerBase, 'BpPartialLabellerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
282
+ initMetadataForObject(Cf2Labeller, 'Cf2Labeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
280
283
  initMetadataForClass(CompleteLabellerBase, 'CompleteLabellerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
284
+ initMetadataForObject(ConflictFreeLabeller, 'ConflictFreeLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
285
+ initMetadataForObject(EagerLabeller, 'EagerLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
281
286
  initMetadataForClass(GroundedLabellerBase, 'GroundedLabellerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
282
287
  initMetadataForClass(GroundedLabellerOptimizedBase, 'GroundedLabellerOptimizedBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
288
+ initMetadataForObject(IdealLabeller, 'IdealLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
289
+ initMetadataForObject(NaiveLabeller, 'NaiveLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
283
290
  initMetadataForObject(PassThroughStatementLabeller, 'PassThroughStatementLabeller', VOID, VOID, [ArgLibrary, Loadable]);
284
291
  initMetadataForObject(Labelling, 'Labelling', VOID, RuleWrapper);
292
+ initMetadataForObject(PreferredLabeller, 'PreferredLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
293
+ initMetadataForObject(SemistableLabeller, 'SemistableLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
294
+ initMetadataForObject(StableLabeller, 'StableLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
295
+ initMetadataForObject(Stage2Labeller, 'Stage2Labeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
296
+ initMetadataForObject(StageLabeller, 'StageLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
285
297
  initMetadataForClass(StatementLabellerBase, 'StatementLabellerBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
298
+ initMetadataForObject(StronglyAdmissibleLabeller, 'StronglyAdmissibleLabeller', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
286
299
  initMetadataForCompanion(Companion_2);
287
300
  initMetadataForClass(RuleParserBase, 'RuleParserBase', VOID, LazyRawPrologContent, [LazyRawPrologContent, ArgLibrary, Loadable]);
288
301
  initMetadataForObject(StrictRules, 'StrictRules', VOID, WithoutSideEffects);
@@ -386,7 +399,7 @@
386
399
  return new Arg2pSolver$Companion$of$1(staticLibs, dynamicLibs);
387
400
  };
388
401
  protoOf(Companion).f39 = function (staticLibs, dynamicLibs) {
389
- return this.e39(plus(listOf([EngineInterface_getInstance(), new Cache()]), staticLibs), plus(listOf([EngineInterface_getInstance(), Utils_getInstance_0(), Debug_getInstance_0(), RuleParser_getInstance(), MetaInterpreter_instance, ModuleCalls_instance, ArgumentationGraphBuilder_getInstance(), AttackRestrictionHandler_getInstance(), BpMetaGraphHandler_getInstance(), DefeasiblePreferencesHandler_getInstance(), GenericDefeasiblePreferencesHandler_getInstance(), StrictPreferencesHandler_getInstance(), BpLabeller_getInstance(), CompleteLabeller_getInstance(), GroundedLabeller_getInstance(), StatementLabeller_getInstance(), AbstractMode_getInstance(), StructuredMode_getInstance(), AttackRelation_getInstance_0(), SuperiorityRelation_getInstance_0(), BpPartialLabeller_getInstance(), BpCompleteLabeller_getInstance(), PassThroughStatementLabeller_getInstance(), BinaryStatementLabeller_getInstance(), GroundedLabellerOptimized_getInstance()]), dynamicLibs));
402
+ return this.e39(plus(listOf([EngineInterface_getInstance(), new Cache()]), staticLibs), plus(listOf([EngineInterface_getInstance(), Utils_getInstance_0(), Debug_getInstance_0(), RuleParser_getInstance(), MetaInterpreter_instance, ModuleCalls_instance, ArgumentationGraphBuilder_getInstance(), AttackRestrictionHandler_getInstance(), BpMetaGraphHandler_getInstance(), DefeasiblePreferencesHandler_getInstance(), GenericDefeasiblePreferencesHandler_getInstance(), StrictPreferencesHandler_getInstance(), BpLabeller_getInstance(), CompleteLabeller_getInstance(), GroundedLabeller_getInstance(), PreferredLabeller_getInstance(), SemistableLabeller_getInstance(), StableLabeller_getInstance(), IdealLabeller_getInstance(), EagerLabeller_getInstance(), NaiveLabeller_getInstance(), StageLabeller_getInstance(), Cf2Labeller_getInstance(), Stage2Labeller_getInstance(), ConflictFreeLabeller_getInstance(), AdmissibleLabeller_getInstance(), StronglyAdmissibleLabeller_getInstance(), StatementLabeller_getInstance(), AbstractMode_getInstance(), StructuredMode_getInstance(), AttackRelation_getInstance_0(), SuperiorityRelation_getInstance_0(), BpPartialLabeller_getInstance(), BpCompleteLabeller_getInstance(), PassThroughStatementLabeller_getInstance(), BinaryStatementLabeller_getInstance(), GroundedLabellerOptimized_getInstance()]), dynamicLibs));
390
403
  };
391
404
  protoOf(Companion).g39 = function (staticLibs, dynamicLibs, $super) {
392
405
  staticLibs = staticLibs === VOID ? emptyList() : staticLibs;
@@ -1915,6 +1928,20 @@
1915
1928
  protoOf(WithLibInNewContext).d3d = function (module_0, solver) {
1916
1929
  return logicProgramming(DynamicLoader$WithLibInNewContext$execute$lambda(solver));
1917
1930
  };
1931
+ function ResetLoader($outer) {
1932
+ this.q3d_1 = $outer;
1933
+ this.p3d_1 = new Signature('loader_reset', 0);
1934
+ }
1935
+ protoOf(ResetLoader).m1s = function () {
1936
+ return this.p3d_1;
1937
+ };
1938
+ protoOf(ResetLoader).g2e = function (request) {
1939
+ this.q3d_1.f3d_1.d3();
1940
+ return sequenceOf(request.replyWithCondition(true, VOID, []));
1941
+ };
1942
+ protoOf(ResetLoader).solve = function (request) {
1943
+ return this.g2e(request);
1944
+ };
1918
1945
  function Companion_0() {
1919
1946
  }
1920
1947
  protoOf(Companion_0).d39 = function () {
@@ -2000,7 +2027,7 @@
2000
2027
  };
2001
2028
  protoOf(DynamicLoader).y39 = function () {
2002
2029
  // Inline function 'kotlin.let' call
2003
- var it = listOf([new WithLib(this), new WithLibInNewContext(this)]);
2030
+ var it = listOf([new WithLib(this), new WithLibInNewContext(this), new ResetLoader(this)]);
2004
2031
  var tmp = Companion_getInstance_2();
2005
2032
  // Inline function 'kotlin.collections.associateBy' call
2006
2033
  var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault(it, 10)), 16);
@@ -2019,24 +2046,24 @@
2019
2046
  };
2020
2047
  function EngineInterfaceBase() {
2021
2048
  LazyRawPrologContent.call(this);
2022
- this.q3d_1 = 'prolog.argumentation.interface';
2023
- this.r3d_1 = Companion_instance_10.d39().plusOperatorSet(Companion_instance_8.d39()).plusOperatorSet(Companion_getInstance_0().DEFAULT);
2049
+ this.s3d_1 = 'prolog.argumentation.interface';
2050
+ this.t3d_1 = Companion_instance_10.d39().plusOperatorSet(Companion_instance_8.d39()).plusOperatorSet(Companion_getInstance_0().DEFAULT);
2024
2051
  }
2025
2052
  protoOf(EngineInterfaceBase).y2b = function () {
2026
- return this.q3d_1;
2053
+ return this.s3d_1;
2027
2054
  };
2028
2055
  protoOf(EngineInterfaceBase).y39 = function () {
2029
2056
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a(), Companion_instance_10.d39());
2030
2057
  };
2031
2058
  protoOf(EngineInterfaceBase).i39 = function () {
2032
- return this.r3d_1;
2059
+ return this.t3d_1;
2033
2060
  };
2034
2061
  protoOf(EngineInterfaceBase).z39 = function () {
2035
2062
  return 'arg2p';
2036
2063
  };
2037
2064
  function Companion_1() {
2038
2065
  }
2039
- protoOf(Companion_1).s3d = function (target) {
2066
+ protoOf(Companion_1).u3d = function (target) {
2040
2067
  // Inline function 'kotlin.also' call
2041
2068
  var this_0 = Companion_instance_2.empty(Companion_getInstance_1().u1i());
2042
2069
  $l$block: {
@@ -2047,23 +2074,23 @@
2047
2074
  var _iterator__ex2g4s = target.v39_1.p();
2048
2075
  while (_iterator__ex2g4s.s()) {
2049
2076
  var element = _iterator__ex2g4s.t();
2050
- this_0.g1q(parseClause(Companion_getInstance_6(), GraphExtension_instance.t3d() + '(X) :- X = ' + element));
2077
+ this_0.g1q(parseClause(Companion_getInstance_6(), GraphExtension_instance.v3d() + '(X) :- X = ' + element));
2051
2078
  }
2052
2079
  if (target.m39_1) {
2053
- this_0.g1r(parseStruct(Companion_getInstance_7(), QueryMode_instance.t3d()));
2080
+ this_0.g1r(parseStruct(Companion_getInstance_7(), QueryMode_instance.v3d()));
2054
2081
  }
2055
2082
  if (target.n39_1) {
2056
- this_0.g1r(parseStruct(Companion_getInstance_7(), AutoTransposition_instance.t3d()));
2083
+ this_0.g1r(parseStruct(Companion_getInstance_7(), AutoTransposition_instance.v3d()));
2057
2084
  }
2058
2085
  if (target.o39_1) {
2059
- this_0.g1r(parseStruct(Companion_getInstance_7(), PrologStrictCompatibility_instance.t3d()));
2086
+ this_0.g1r(parseStruct(Companion_getInstance_7(), PrologStrictCompatibility_instance.v3d()));
2060
2087
  }
2061
- this_0.g1r(parseStruct(Companion_getInstance_7(), GraphBuildMode_instance.t3d() + '(' + target.p39_1 + ')'));
2062
- this_0.g1r(parseStruct(Companion_getInstance_7(), ArgumentLabellingMode_instance.t3d() + '(' + target.q39_1 + ')'));
2063
- this_0.g1r(parseStruct(Companion_getInstance_7(), StatementLabellingMode_instance.t3d() + '(' + target.r39_1 + ')'));
2064
- this_0.g1r(parseStruct(Companion_getInstance_7(), OrderingPrinciple_instance.t3d() + '(' + target.s39_1 + ')'));
2065
- this_0.g1r(parseStruct(Companion_getInstance_7(), OrderingComparator_instance.t3d() + '(' + target.t39_1 + ')'));
2066
- this_0.g1r(parseStruct(Companion_getInstance_7(), ModulesPath_instance.t3d() + '(' + target.u39_1 + ')'));
2088
+ this_0.g1r(parseStruct(Companion_getInstance_7(), GraphBuildMode_instance.v3d() + '(' + target.p39_1 + ')'));
2089
+ this_0.g1r(parseStruct(Companion_getInstance_7(), ArgumentLabellingMode_instance.v3d() + '(' + target.q39_1 + ')'));
2090
+ this_0.g1r(parseStruct(Companion_getInstance_7(), StatementLabellingMode_instance.v3d() + '(' + target.r39_1 + ')'));
2091
+ this_0.g1r(parseStruct(Companion_getInstance_7(), OrderingPrinciple_instance.v3d() + '(' + target.s39_1 + ')'));
2092
+ this_0.g1r(parseStruct(Companion_getInstance_7(), OrderingComparator_instance.v3d() + '(' + target.t39_1 + ')'));
2093
+ this_0.g1r(parseStruct(Companion_getInstance_7(), ModulesPath_instance.v3d() + '(' + target.u39_1 + ')'));
2067
2094
  }
2068
2095
  return this_0;
2069
2096
  };
@@ -2072,27 +2099,27 @@
2072
2099
  return Companion_instance_9;
2073
2100
  }
2074
2101
  function FlagsBuilder$create$1(this$0) {
2075
- this.v3d_1 = this$0;
2076
- this.u3d_1 = 'prolog.argumentation.flags';
2102
+ this.x3d_1 = this$0;
2103
+ this.w3d_1 = 'prolog.argumentation.flags';
2077
2104
  }
2078
2105
  protoOf(FlagsBuilder$create$1).y2b = function () {
2079
- return this.u3d_1;
2106
+ return this.w3d_1;
2080
2107
  };
2081
2108
  protoOf(FlagsBuilder$create$1).y39 = function () {
2082
- return Companion_getInstance_2().of(this.u3d_1, VOID, Companion_instance_9.s3d(this.v3d_1));
2109
+ return Companion_getInstance_2().of(this.w3d_1, VOID, Companion_instance_9.u3d(this.x3d_1));
2083
2110
  };
2084
2111
  function FlagsBuilder(emptyBuilder, queryMode, autoTransposition, prologStrictCompatibility, graphBuildMode, argumentLabellingMode, statementLabellingMode, orderingPrinciple, orderingComparator, modulesPath, graphExtensions) {
2085
2112
  emptyBuilder = emptyBuilder === VOID ? false : emptyBuilder;
2086
- queryMode = queryMode === VOID ? QueryMode_instance.w3d() : queryMode;
2087
- autoTransposition = autoTransposition === VOID ? AutoTransposition_instance.w3d() : autoTransposition;
2088
- prologStrictCompatibility = prologStrictCompatibility === VOID ? PrologStrictCompatibility_instance.w3d() : prologStrictCompatibility;
2089
- graphBuildMode = graphBuildMode === VOID ? GraphBuildMode_instance.w3d() : graphBuildMode;
2090
- argumentLabellingMode = argumentLabellingMode === VOID ? ArgumentLabellingMode_instance.w3d() : argumentLabellingMode;
2091
- statementLabellingMode = statementLabellingMode === VOID ? StatementLabellingMode_instance.w3d() : statementLabellingMode;
2092
- orderingPrinciple = orderingPrinciple === VOID ? OrderingPrinciple_instance.w3d() : orderingPrinciple;
2093
- orderingComparator = orderingComparator === VOID ? OrderingComparator_instance.w3d() : orderingComparator;
2094
- modulesPath = modulesPath === VOID ? ModulesPath_instance.w3d() : modulesPath;
2095
- graphExtensions = graphExtensions === VOID ? GraphExtension_instance.w3d() : graphExtensions;
2113
+ queryMode = queryMode === VOID ? QueryMode_instance.y3d() : queryMode;
2114
+ autoTransposition = autoTransposition === VOID ? AutoTransposition_instance.y3d() : autoTransposition;
2115
+ prologStrictCompatibility = prologStrictCompatibility === VOID ? PrologStrictCompatibility_instance.y3d() : prologStrictCompatibility;
2116
+ graphBuildMode = graphBuildMode === VOID ? GraphBuildMode_instance.y3d() : graphBuildMode;
2117
+ argumentLabellingMode = argumentLabellingMode === VOID ? ArgumentLabellingMode_instance.y3d() : argumentLabellingMode;
2118
+ statementLabellingMode = statementLabellingMode === VOID ? StatementLabellingMode_instance.y3d() : statementLabellingMode;
2119
+ orderingPrinciple = orderingPrinciple === VOID ? OrderingPrinciple_instance.y3d() : orderingPrinciple;
2120
+ orderingComparator = orderingComparator === VOID ? OrderingComparator_instance.y3d() : orderingComparator;
2121
+ modulesPath = modulesPath === VOID ? ModulesPath_instance.y3d() : modulesPath;
2122
+ graphExtensions = graphExtensions === VOID ? GraphExtension_instance.y3d() : graphExtensions;
2096
2123
  this.l39_1 = emptyBuilder;
2097
2124
  this.m39_1 = queryMode;
2098
2125
  this.n39_1 = autoTransposition;
@@ -2155,13 +2182,13 @@
2155
2182
  return true;
2156
2183
  };
2157
2184
  function MetaInterpreter() {
2158
- this.x3d_1 = 'prolog.argumentation.meta.crossjustice';
2185
+ this.z3d_1 = 'prolog.argumentation.meta.crossjustice';
2159
2186
  }
2160
2187
  protoOf(MetaInterpreter).y2b = function () {
2161
- return this.x3d_1;
2188
+ return this.z3d_1;
2162
2189
  };
2163
2190
  protoOf(MetaInterpreter).y39 = function () {
2164
- return Companion_getInstance_2().of(this.x3d_1, VOID, parseTheory(Companion_instance_0, '% with_facts_and_length/3\nwith_facts_and_length(X, Y, L) :-\n solve(X, R),\n recover_facts(R, Y),\n length(Y, L).\n\n% lenght/2\n\nlength([], 0).\nlength([_|T], X) :- length(T, Y), X is Y + 1.\n\n% recover_facts/2\n\nrecover_facts([], []) :- !.\nrecover_facts([H|T], C) :-\n is_list(H), !,\n recover_facts(T, TC),\n recover_facts(H, HC),\n append(TC, HC, C).\nrecover_facts([H|T], C) :-\n \\+ is_list(H),\n recover_facts(T, TC),\n evaluate(H, HC),\n append(TC, HC, C).\n\nevaluate(user_fact(X), [X]) :- !.\nevaluate(_, []) :- !.\n\n% solve/2\n\nsolve((A,B), Result) :- !,\n solve(A, ARes),\n solve(B, BRes),\n append(ARes, BRes, Result).\n\nsolve((A;B), Result) :- !,\n solve(A, Result);\n solve(B, Result).\n\nsolve(member(A, B), [system_predicate]) :- !,\n call(member(A, B)).\n\nsolve(\\+(A), [not(A)]) :- !,\n call(\\+(A)).\n\nsolve((A)\\=(B), [doNotUnify(A, B)]) :- !,\n call((A)\\=(B)).\n\nsolve(A, [system_predicate]) :-\n catch(clause(A, _), B, true),\n \\+ var(B), !,\n call(A).\n\nsolve(A, [A]) :-\n \\+ clause(A, B), !,\n call(A).\n\nsolve(A, [A|[Res]]) :-\n clause(A, B),\n solve(B, Res).\n\n% is_list/1\n\nis_list(X) :- var(X), !, fail.\nis_list([]).\nis_list([_|T]) :- is_list(T).\n\n% fetch_argument_facts/2\n\nfetch_argument_facts(Conclusion, Facts) :-\n argument([R, TR, [Conclusion]]),\n findall(user_fact(Fact), \n support([_, _, [user_fact(Fact)]], [R, TR, [Conclusion]]),\n Facts).'));
2191
+ return Companion_getInstance_2().of(this.z3d_1, VOID, parseTheory(Companion_instance_0, '% with_facts_and_length/3\nwith_facts_and_length(X, Y, L) :-\n solve(X, R),\n recover_facts(R, Y),\n length(Y, L).\n\n% lenght/2\n\nlength([], 0).\nlength([_|T], X) :- length(T, Y), X is Y + 1.\n\n% recover_facts/2\n\nrecover_facts([], []) :- !.\nrecover_facts([H|T], C) :-\n is_list(H), !,\n recover_facts(T, TC),\n recover_facts(H, HC),\n append(TC, HC, C).\nrecover_facts([H|T], C) :-\n \\+ is_list(H),\n recover_facts(T, TC),\n evaluate(H, HC),\n append(TC, HC, C).\n\nevaluate(user_fact(X), [X]) :- !.\nevaluate(_, []) :- !.\n\n% solve/2\n\nsolve((A,B), Result) :- !,\n solve(A, ARes),\n solve(B, BRes),\n append(ARes, BRes, Result).\n\nsolve((A;B), Result) :- !,\n solve(A, Result);\n solve(B, Result).\n\nsolve(member(A, B), [system_predicate]) :- !,\n call(member(A, B)).\n\nsolve(\\+(A), [not(A)]) :- !,\n call(\\+(A)).\n\nsolve((A)\\=(B), [doNotUnify(A, B)]) :- !,\n call((A)\\=(B)).\n\nsolve(A, [system_predicate]) :-\n catch(clause(A, _), B, true),\n \\+ var(B), !,\n call(A).\n\nsolve(A, [A]) :-\n \\+ clause(A, B), !,\n call(A).\n\nsolve(A, [A|[Res]]) :-\n clause(A, B),\n solve(B, Res).\n\n% is_list/1\n\nis_list(X) :- var(X), !, fail.\nis_list([]).\nis_list([_|T]) :- is_list(T).\n\n% fetch_argument_facts/2\n\nfetch_argument_facts(Conclusion, Facts) :-\n argument([R, TR, [Conclusion]]),\n findall(user_fact(Fact), \n support([_, _, [user_fact(Fact)]], [R, TR, [Conclusion]]),\n Facts).'));
2165
2192
  };
2166
2193
  protoOf(MetaInterpreter).z39 = function () {
2167
2194
  return 'interpreter';
@@ -2171,13 +2198,13 @@
2171
2198
  return MetaInterpreter_instance;
2172
2199
  }
2173
2200
  function ModuleCalls() {
2174
- this.y3d_1 = 'prolog.argumentation.modularity';
2201
+ this.a3e_1 = 'prolog.argumentation.modularity';
2175
2202
  }
2176
2203
  protoOf(ModuleCalls).y2b = function () {
2177
- return this.y3d_1;
2204
+ return this.a3e_1;
2178
2205
  };
2179
2206
  protoOf(ModuleCalls).y39 = function () {
2180
- return Companion_getInstance_2().of(this.y3d_1, mapOf(to(ModuleCall_getInstance().z3d_1, ModuleCall_getInstance())));
2207
+ return Companion_getInstance_2().of(this.a3e_1, mapOf(to(ModuleCall_getInstance().b3e_1, ModuleCall_getInstance())));
2181
2208
  };
2182
2209
  protoOf(ModuleCalls).z39 = function () {
2183
2210
  return 'module';
@@ -2205,9 +2232,9 @@
2205
2232
  return logicProgramming_0(VOID, ModuleCall$getCleanSolver$lambda_0(context, modules, module_0));
2206
2233
  }
2207
2234
  function ModuleCall$solve$slambda($solver, $goal, $request, resultContinuation) {
2208
- this.i3e_1 = $solver;
2209
- this.j3e_1 = $goal;
2210
- this.k3e_1 = $request;
2235
+ this.k3e_1 = $solver;
2236
+ this.l3e_1 = $goal;
2237
+ this.m3e_1 = $request;
2211
2238
  CoroutineImpl.call(this, resultContinuation);
2212
2239
  }
2213
2240
  protoOf(ModuleCall$solve$slambda).c2o = function ($this$sequence, $completion) {
@@ -2228,8 +2255,8 @@
2228
2255
  case 0:
2229
2256
  this.c8_1 = 2;
2230
2257
  this.b8_1 = 1;
2231
- var tmp_0 = this.i3e_1.solve(this.j3e_1);
2232
- suspendResult = this.l3e_1.sc(map(tmp_0, ModuleCall$solve$slambda$lambda(this.k3e_1)), this);
2258
+ var tmp_0 = this.k3e_1.solve(this.l3e_1);
2259
+ suspendResult = this.n3e_1.sc(map(tmp_0, ModuleCall$solve$slambda$lambda(this.m3e_1)), this);
2233
2260
  if (suspendResult === get_COROUTINE_SUSPENDED()) {
2234
2261
  return suspendResult;
2235
2262
  }
@@ -2252,8 +2279,8 @@
2252
2279
  while (true);
2253
2280
  };
2254
2281
  protoOf(ModuleCall$solve$slambda).d2o = function ($this$sequence, completion) {
2255
- var i = new ModuleCall$solve$slambda(this.i3e_1, this.j3e_1, this.k3e_1, completion);
2256
- i.l3e_1 = $this$sequence;
2282
+ var i = new ModuleCall$solve$slambda(this.k3e_1, this.l3e_1, this.m3e_1, completion);
2283
+ i.n3e_1 = $this$sequence;
2257
2284
  return i;
2258
2285
  };
2259
2286
  function ModuleCall$solve$slambda_0($solver, $goal, $request, resultContinuation) {
@@ -2301,7 +2328,7 @@
2301
2328
  }
2302
2329
  function ModuleCall() {
2303
2330
  ModuleCall_instance = this;
2304
- this.z3d_1 = new Signature('call_module', 2);
2331
+ this.b3e_1 = new Signature('call_module', 2);
2305
2332
  }
2306
2333
  protoOf(ModuleCall).g2e = function (request) {
2307
2334
  var modules = request.arguments.w(0);
@@ -2337,10 +2364,10 @@
2337
2364
  }
2338
2365
  function ModulesPath() {
2339
2366
  }
2340
- protoOf(ModulesPath).t3d = function () {
2367
+ protoOf(ModulesPath).v3d = function () {
2341
2368
  return 'modulesPath';
2342
2369
  };
2343
- protoOf(ModulesPath).w3d = function () {
2370
+ protoOf(ModulesPath).y3d = function () {
2344
2371
  return 'none';
2345
2372
  };
2346
2373
  var ModulesPath_instance;
@@ -2349,11 +2376,11 @@
2349
2376
  }
2350
2377
  function AbstractModeBase() {
2351
2378
  LazyRawPrologContent.call(this);
2352
- this.n3e_1 = 'prolog.argumentation.abstract';
2353
- this.o3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2379
+ this.p3e_1 = 'prolog.argumentation.abstract';
2380
+ this.q3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2354
2381
  }
2355
2382
  protoOf(AbstractModeBase).y2b = function () {
2356
- return this.n3e_1;
2383
+ return this.p3e_1;
2357
2384
  };
2358
2385
  protoOf(AbstractModeBase).y39 = function () {
2359
2386
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2362,14 +2389,14 @@
2362
2389
  return 'abstract';
2363
2390
  };
2364
2391
  protoOf(AbstractModeBase).i39 = function () {
2365
- return this.o3e_1;
2392
+ return this.q3e_1;
2366
2393
  };
2367
2394
  function GraphExtension() {
2368
2395
  }
2369
- protoOf(GraphExtension).t3d = function () {
2396
+ protoOf(GraphExtension).v3d = function () {
2370
2397
  return 'graphExtension';
2371
2398
  };
2372
- protoOf(GraphExtension).w3d = function () {
2399
+ protoOf(GraphExtension).y3d = function () {
2373
2400
  return listOf_0('standardPref');
2374
2401
  };
2375
2402
  var GraphExtension_instance;
@@ -2378,10 +2405,10 @@
2378
2405
  }
2379
2406
  function ArgumentLabellingMode() {
2380
2407
  }
2381
- protoOf(ArgumentLabellingMode).t3d = function () {
2408
+ protoOf(ArgumentLabellingMode).v3d = function () {
2382
2409
  return 'argumentLabellingMode';
2383
2410
  };
2384
- protoOf(ArgumentLabellingMode).w3d = function () {
2411
+ protoOf(ArgumentLabellingMode).y3d = function () {
2385
2412
  return 'grounded';
2386
2413
  };
2387
2414
  var ArgumentLabellingMode_instance;
@@ -2390,10 +2417,10 @@
2390
2417
  }
2391
2418
  function StatementLabellingMode() {
2392
2419
  }
2393
- protoOf(StatementLabellingMode).t3d = function () {
2420
+ protoOf(StatementLabellingMode).v3d = function () {
2394
2421
  return 'statementLabellingMode';
2395
2422
  };
2396
- protoOf(StatementLabellingMode).w3d = function () {
2423
+ protoOf(StatementLabellingMode).y3d = function () {
2397
2424
  return 'statement';
2398
2425
  };
2399
2426
  var StatementLabellingMode_instance;
@@ -2402,10 +2429,10 @@
2402
2429
  }
2403
2430
  function GraphBuildMode() {
2404
2431
  }
2405
- protoOf(GraphBuildMode).t3d = function () {
2432
+ protoOf(GraphBuildMode).v3d = function () {
2406
2433
  return 'graphBuildMode';
2407
2434
  };
2408
- protoOf(GraphBuildMode).w3d = function () {
2435
+ protoOf(GraphBuildMode).y3d = function () {
2409
2436
  return 'standard_af';
2410
2437
  };
2411
2438
  var GraphBuildMode_instance;
@@ -2414,11 +2441,11 @@
2414
2441
  }
2415
2442
  function ArgumentationGraphBuilderBase() {
2416
2443
  LazyRawPrologContent.call(this);
2417
- this.q3e_1 = 'prolog.argumentation.graph';
2418
- this.r3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2444
+ this.s3e_1 = 'prolog.argumentation.graph';
2445
+ this.t3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2419
2446
  }
2420
2447
  protoOf(ArgumentationGraphBuilderBase).y2b = function () {
2421
- return this.q3e_1;
2448
+ return this.s3e_1;
2422
2449
  };
2423
2450
  protoOf(ArgumentationGraphBuilderBase).y39 = function () {
2424
2451
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2427,15 +2454,15 @@
2427
2454
  return 'standard_af';
2428
2455
  };
2429
2456
  protoOf(ArgumentationGraphBuilderBase).i39 = function () {
2430
- return this.r3e_1;
2457
+ return this.t3e_1;
2431
2458
  };
2432
2459
  function AttackRestrictionHandlerBase() {
2433
2460
  LazyRawPrologContent.call(this);
2434
- this.t3e_1 = 'prolog.argumentation.graph.rebutrestriction';
2435
- this.u3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2461
+ this.v3e_1 = 'prolog.argumentation.graph.rebutrestriction';
2462
+ this.w3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2436
2463
  }
2437
2464
  protoOf(AttackRestrictionHandlerBase).y2b = function () {
2438
- return this.t3e_1;
2465
+ return this.v3e_1;
2439
2466
  };
2440
2467
  protoOf(AttackRestrictionHandlerBase).y39 = function () {
2441
2468
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2444,15 +2471,15 @@
2444
2471
  return 'rebutRestriction';
2445
2472
  };
2446
2473
  protoOf(AttackRestrictionHandlerBase).i39 = function () {
2447
- return this.u3e_1;
2474
+ return this.w3e_1;
2448
2475
  };
2449
2476
  function BpMetaGraphHandlerBase() {
2450
2477
  LazyRawPrologContent.call(this);
2451
- this.w3e_1 = 'prolog.argumentation.graph.meta.bp';
2452
- this.x3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2478
+ this.y3e_1 = 'prolog.argumentation.graph.meta.bp';
2479
+ this.z3e_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2453
2480
  }
2454
2481
  protoOf(BpMetaGraphHandlerBase).y2b = function () {
2455
- return this.w3e_1;
2482
+ return this.y3e_1;
2456
2483
  };
2457
2484
  protoOf(BpMetaGraphHandlerBase).y39 = function () {
2458
2485
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2461,15 +2488,15 @@
2461
2488
  return 'bp';
2462
2489
  };
2463
2490
  protoOf(BpMetaGraphHandlerBase).i39 = function () {
2464
- return this.x3e_1;
2491
+ return this.z3e_1;
2465
2492
  };
2466
2493
  function DefeasiblePreferencesHandlerBase() {
2467
2494
  LazyRawPrologContent.call(this);
2468
- this.z3e_1 = 'prolog.argumentation.graph.preferences.defeasible';
2469
- this.a3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2495
+ this.b3f_1 = 'prolog.argumentation.graph.preferences.defeasible';
2496
+ this.c3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2470
2497
  }
2471
2498
  protoOf(DefeasiblePreferencesHandlerBase).y2b = function () {
2472
- return this.z3e_1;
2499
+ return this.b3f_1;
2473
2500
  };
2474
2501
  protoOf(DefeasiblePreferencesHandlerBase).y39 = function () {
2475
2502
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2478,15 +2505,15 @@
2478
2505
  return 'defeasiblePref';
2479
2506
  };
2480
2507
  protoOf(DefeasiblePreferencesHandlerBase).i39 = function () {
2481
- return this.a3f_1;
2508
+ return this.c3f_1;
2482
2509
  };
2483
2510
  function GenericDefeasiblePreferencesHandlerBase() {
2484
2511
  LazyRawPrologContent.call(this);
2485
- this.c3f_1 = 'prolog.argumentation.graph.preferences.defeasible.generic';
2486
- this.d3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2512
+ this.e3f_1 = 'prolog.argumentation.graph.preferences.defeasible.generic';
2513
+ this.f3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2487
2514
  }
2488
2515
  protoOf(GenericDefeasiblePreferencesHandlerBase).y2b = function () {
2489
- return this.c3f_1;
2516
+ return this.e3f_1;
2490
2517
  };
2491
2518
  protoOf(GenericDefeasiblePreferencesHandlerBase).y39 = function () {
2492
2519
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2495,15 +2522,15 @@
2495
2522
  return 'defeasibleAllPref';
2496
2523
  };
2497
2524
  protoOf(GenericDefeasiblePreferencesHandlerBase).i39 = function () {
2498
- return this.d3f_1;
2525
+ return this.f3f_1;
2499
2526
  };
2500
2527
  function StrictPreferencesHandlerBase() {
2501
2528
  LazyRawPrologContent.call(this);
2502
- this.f3f_1 = 'prolog.argumentation.graph.preferences.strict';
2503
- this.g3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2529
+ this.h3f_1 = 'prolog.argumentation.graph.preferences.strict';
2530
+ this.i3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2504
2531
  }
2505
2532
  protoOf(StrictPreferencesHandlerBase).y2b = function () {
2506
- return this.f3f_1;
2533
+ return this.h3f_1;
2507
2534
  };
2508
2535
  protoOf(StrictPreferencesHandlerBase).y39 = function () {
2509
2536
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2512,24 +2539,52 @@
2512
2539
  return 'standardPref';
2513
2540
  };
2514
2541
  protoOf(StrictPreferencesHandlerBase).i39 = function () {
2515
- return this.g3f_1;
2542
+ return this.i3f_1;
2543
+ };
2544
+ function AdmissibleLabeller() {
2545
+ AdmissibleLabeller_instance = this;
2546
+ LazyRawPrologContent.call(this);
2547
+ this.k3f_1 = 'prolog.argumentation.graph.labelling.admissible';
2548
+ this.l3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2549
+ this.m3f_1 = 'argumentLabelling :-\n conflictfree::argumentLabelling,\n admissibleSet.\n\nadmissibleSet :-\n \\+ (context_check(inId(H)), \\+ admissible(H)).\nadmissible(H) :-\n \\+ (\n context_check(clause(att(Attacker, H), _)),\n \\+ (\n context_check(clause(att(Defendant, Attacker), _)),\n context_check(inId(Defendant)),\n Defendant \\= Attacker\n )\n ).';
2550
+ }
2551
+ protoOf(AdmissibleLabeller).y2b = function () {
2552
+ return this.k3f_1;
2553
+ };
2554
+ protoOf(AdmissibleLabeller).y39 = function () {
2555
+ return Companion_getInstance_2().of(this.k3f_1, VOID, this.c3a());
2556
+ };
2557
+ protoOf(AdmissibleLabeller).z39 = function () {
2558
+ return 'admissible';
2516
2559
  };
2560
+ protoOf(AdmissibleLabeller).i39 = function () {
2561
+ return this.l3f_1;
2562
+ };
2563
+ protoOf(AdmissibleLabeller).b3a = function () {
2564
+ return this.m3f_1;
2565
+ };
2566
+ var AdmissibleLabeller_instance;
2567
+ function AdmissibleLabeller_getInstance() {
2568
+ if (AdmissibleLabeller_instance == null)
2569
+ new AdmissibleLabeller();
2570
+ return AdmissibleLabeller_instance;
2571
+ }
2517
2572
  function BinaryStatementLabeller() {
2518
2573
  BinaryStatementLabeller_instance = this;
2519
- this.h3f_1 = 'prolog.argumentation.graph.labelling.statement.binary';
2520
- this.i3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2574
+ this.n3f_1 = 'prolog.argumentation.graph.labelling.statement.binary';
2575
+ this.o3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2521
2576
  }
2522
2577
  protoOf(BinaryStatementLabeller).y2b = function () {
2523
- return this.h3f_1;
2578
+ return this.n3f_1;
2524
2579
  };
2525
2580
  protoOf(BinaryStatementLabeller).y39 = function () {
2526
- return Companion_getInstance_2().of(this.h3f_1, VOID, Companion_instance_0.ofWithDefaultUnificator([BinaryLabelling_getInstance().n1s()]));
2581
+ return Companion_getInstance_2().of(this.n3f_1, VOID, Companion_instance_0.ofWithDefaultUnificator([BinaryLabelling_getInstance().n1s()]));
2527
2582
  };
2528
2583
  protoOf(BinaryStatementLabeller).z39 = function () {
2529
2584
  return 'statement_binary';
2530
2585
  };
2531
2586
  protoOf(BinaryStatementLabeller).i39 = function () {
2532
- return this.i3f_1;
2587
+ return this.o3f_1;
2533
2588
  };
2534
2589
  var BinaryStatementLabeller_instance;
2535
2590
  function BinaryStatementLabeller_getInstance() {
@@ -2555,11 +2610,11 @@
2555
2610
  }
2556
2611
  function BpCompleteLabellerBase() {
2557
2612
  LazyRawPrologContent.call(this);
2558
- this.n3f_1 = 'prolog.argumentation.graph.labelling.bpgroundedcomplete';
2559
- this.o3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2613
+ this.t3f_1 = 'prolog.argumentation.graph.labelling.bpgroundedcomplete';
2614
+ this.u3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2560
2615
  }
2561
2616
  protoOf(BpCompleteLabellerBase).y2b = function () {
2562
- return this.n3f_1;
2617
+ return this.t3f_1;
2563
2618
  };
2564
2619
  protoOf(BpCompleteLabellerBase).y39 = function () {
2565
2620
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2568,15 +2623,15 @@
2568
2623
  return 'bp_grounded_complete';
2569
2624
  };
2570
2625
  protoOf(BpCompleteLabellerBase).i39 = function () {
2571
- return this.o3f_1;
2626
+ return this.u3f_1;
2572
2627
  };
2573
2628
  function BpLabellerBase() {
2574
2629
  LazyRawPrologContent.call(this);
2575
- this.q3f_1 = 'prolog.argumentation.graph.labelling.bpgrounded';
2576
- this.r3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2630
+ this.w3f_1 = 'prolog.argumentation.graph.labelling.bpgrounded';
2631
+ this.x3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2577
2632
  }
2578
2633
  protoOf(BpLabellerBase).y2b = function () {
2579
- return this.q3f_1;
2634
+ return this.w3f_1;
2580
2635
  };
2581
2636
  protoOf(BpLabellerBase).y39 = function () {
2582
2637
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2585,15 +2640,15 @@
2585
2640
  return 'bp_grounded';
2586
2641
  };
2587
2642
  protoOf(BpLabellerBase).i39 = function () {
2588
- return this.r3f_1;
2643
+ return this.x3f_1;
2589
2644
  };
2590
2645
  function BpPartialLabellerBase() {
2591
2646
  LazyRawPrologContent.call(this);
2592
- this.t3f_1 = 'prolog.argumentation.graph.labelling.bpgroundedpartial';
2593
- this.u3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2647
+ this.z3f_1 = 'prolog.argumentation.graph.labelling.bpgroundedpartial';
2648
+ this.a3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2594
2649
  }
2595
2650
  protoOf(BpPartialLabellerBase).y2b = function () {
2596
- return this.t3f_1;
2651
+ return this.z3f_1;
2597
2652
  };
2598
2653
  protoOf(BpPartialLabellerBase).y39 = function () {
2599
2654
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2602,15 +2657,43 @@
2602
2657
  return 'bp_grounded_partial';
2603
2658
  };
2604
2659
  protoOf(BpPartialLabellerBase).i39 = function () {
2605
- return this.u3f_1;
2660
+ return this.a3g_1;
2606
2661
  };
2662
+ function Cf2Labeller() {
2663
+ Cf2Labeller_instance = this;
2664
+ LazyRawPrologContent.call(this);
2665
+ this.c3g_1 = 'prolog.argumentation.graph.labelling.cf2';
2666
+ this.d3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2667
+ this.e3g_1 = 'argumentLabelling :-\n compute(naive).\n\ncompute(Base) :-\n findall(A, context_check(clause(arg(A), _)), Args),\n computeScc(Args, Scc),\n context_active(Branch),\n context_branch(Branch, NewBranch),\n context_retract(arg(_) :- argument(_)),\n computeIteratively(Base, Branch, Scc).\n\ncomputeIteratively(_, _, []).\ncomputeIteratively(Base, OriginBranch, Scc) :-\n once(getNext(Scc, Next, Others)),\n context_active(Branch),\n context_branch(Branch, NewBranch),\n moveArgs(Next, OriginBranch),\n Base::argumentLabelling,\n computeIteratively(Base, OriginBranch, Others).\n\ngetNext(Scc, X, Others) :-\n member(X, Scc),\n utils::subtract(Scc, [X], Others), \n utils::appendLists(Others, FO),\n \\+ (\n member(Y, X),\n context_check(clause(att(A, Y), _)),\n member(A, FO)\n ).\n \nmoveArgs([], _).\nmoveArgs([H|T], Branch) :-\n context_check(Branch, clause(arg(H), argument(HA))),\n context_assert(arg(H) :- argument(HA)),\n moveArgs(T, Branch).\n \ncomputeScc(T, MScc) :-\n findall(R, scc(T, [], R), Scc),\n findall(S, (member(S, Scc), check_maximal(S, Scc)), MScc).\n \ncheck_maximal(S, All) :-\n \\+ (\n member(S1, All),\n S \\== S1,\n \\+ (\n member(Y, S), \n \\+ member(Y, S1)\n )\n ).\n\nscc([], L, L) :- stronglyConnected(L).\nscc([H|Others], T, R) :- scc(Others, [H|T], R). \nscc([_|Others], T, R) :- scc(Others, T, R).\n\nstronglyConnected(T) :-\n \\+ (\n member(X, T),\n member(Y, T),\n \\+ once(reach(X, Y, [X], T))\n ).\n\nreach(X, X, _, _) :- !.\nreach(X, Y, P, S) :- \n context_check(clause(att(X, X1), _)),\n member(X1, S),\n \\+ member(X1, P),\n reach(X1, Y, [X1|P], S).\n';
2668
+ }
2669
+ protoOf(Cf2Labeller).y2b = function () {
2670
+ return this.c3g_1;
2671
+ };
2672
+ protoOf(Cf2Labeller).y39 = function () {
2673
+ return Companion_getInstance_2().of(this.c3g_1, VOID, this.c3a());
2674
+ };
2675
+ protoOf(Cf2Labeller).z39 = function () {
2676
+ return 'cf2';
2677
+ };
2678
+ protoOf(Cf2Labeller).i39 = function () {
2679
+ return this.d3g_1;
2680
+ };
2681
+ protoOf(Cf2Labeller).b3a = function () {
2682
+ return this.e3g_1;
2683
+ };
2684
+ var Cf2Labeller_instance;
2685
+ function Cf2Labeller_getInstance() {
2686
+ if (Cf2Labeller_instance == null)
2687
+ new Cf2Labeller();
2688
+ return Cf2Labeller_instance;
2689
+ }
2607
2690
  function CompleteLabellerBase() {
2608
2691
  LazyRawPrologContent.call(this);
2609
- this.w3f_1 = 'prolog.argumentation.graph.labelling.complete';
2610
- this.x3f_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2692
+ this.g3g_1 = 'prolog.argumentation.graph.labelling.complete';
2693
+ this.h3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2611
2694
  }
2612
2695
  protoOf(CompleteLabellerBase).y2b = function () {
2613
- return this.w3f_1;
2696
+ return this.g3g_1;
2614
2697
  };
2615
2698
  protoOf(CompleteLabellerBase).y39 = function () {
2616
2699
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2619,58 +2702,170 @@
2619
2702
  return 'complete';
2620
2703
  };
2621
2704
  protoOf(CompleteLabellerBase).i39 = function () {
2622
- return this.x3f_1;
2705
+ return this.h3g_1;
2706
+ };
2707
+ function ConflictFreeLabeller() {
2708
+ ConflictFreeLabeller_instance = this;
2709
+ LazyRawPrologContent.call(this);
2710
+ this.j3g_1 = 'prolog.argumentation.graph.labelling.conflictfree';
2711
+ this.k3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2712
+ this.l3g_1 = 'argumentLabelling :-\n context_active(Branch),\n conflictFreeLabelling(Branch).\n\nconflictFreeLabelling(Branch) :-\n findall(A, context_check(clause(arg(A), _)), Args),\n combinations(Branch, Args, TentativeSet),\n conflictFreeSet(TentativeSet),\n context_branch(Branch, _),\n findall(_, (\n member(IdA, TentativeSet), \n context_check(clause(arg(IdA), argument(A))),\n context_assert(in(A)),\n context_assert(inId(IdA))\n ), _),\n finalizeLabelling.\n\ncombinations(_, [], []).\ncombinations(Branch, [H|T], [H|RT]) :- combinations(Branch, T, RT).\ncombinations(Branch, [H|T], RT) :- \\+ context_check(Branch, inId(H)), combinations(Branch, T, RT).\n\nconflictFreeSet(TentativeSet) :-\n \\+ (\n member(A, TentativeSet), \n member(B, TentativeSet),\n context_check(clause(att(A, B), _))\n ).\n \nfinalizeLabelling :-\n findall(_, (\n argument_to_evaluate(X, IdX),\n context_check(clause(att(IdY, IdX), _)),\n context_check(inId(IdY)),\n context_assert(out(X)),\n context_assert(outId(IdX))\n ), _),\n findall(_, (\n argument_to_evaluate(X, IdX),\n context_assert(und(X)),\n context_assert(undId(IdX))\n ), _).\n \nargument_to_evaluate(X, IdX) :-\n context_check(clause(arg(IdX), argument(X))),\n \\+ context_check(outId(IdX)),\n \\+ context_check(inId(IdX)).\n';
2713
+ }
2714
+ protoOf(ConflictFreeLabeller).y2b = function () {
2715
+ return this.j3g_1;
2716
+ };
2717
+ protoOf(ConflictFreeLabeller).y39 = function () {
2718
+ return Companion_getInstance_2().of(this.j3g_1, VOID, this.c3a());
2719
+ };
2720
+ protoOf(ConflictFreeLabeller).z39 = function () {
2721
+ return 'conflictfree';
2722
+ };
2723
+ protoOf(ConflictFreeLabeller).i39 = function () {
2724
+ return this.k3g_1;
2725
+ };
2726
+ protoOf(ConflictFreeLabeller).b3a = function () {
2727
+ return this.l3g_1;
2623
2728
  };
2729
+ var ConflictFreeLabeller_instance;
2730
+ function ConflictFreeLabeller_getInstance() {
2731
+ if (ConflictFreeLabeller_instance == null)
2732
+ new ConflictFreeLabeller();
2733
+ return ConflictFreeLabeller_instance;
2734
+ }
2735
+ function EagerLabeller() {
2736
+ EagerLabeller_instance = this;
2737
+ LazyRawPrologContent.call(this);
2738
+ this.n3g_1 = 'prolog.argumentation.graph.labelling.eager';
2739
+ this.o3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2740
+ this.p3g_1 = 'argumentLabelling :-\n findall(In, (\n semistable:::argumentLabelling,\n context_active(Branch),\n cache_check(complete(In, _, _, Branch))\n ), Results),\n utils::intersection(Results, Int),\n utils::sort(Int, SortedInt),\n cache_check(complete(SortedInt, _, _, Branch)),\n context_checkout(Branch).';
2741
+ }
2742
+ protoOf(EagerLabeller).y2b = function () {
2743
+ return this.n3g_1;
2744
+ };
2745
+ protoOf(EagerLabeller).y39 = function () {
2746
+ return Companion_getInstance_2().of(this.n3g_1, VOID, this.c3a());
2747
+ };
2748
+ protoOf(EagerLabeller).z39 = function () {
2749
+ return 'eager';
2750
+ };
2751
+ protoOf(EagerLabeller).i39 = function () {
2752
+ return this.o3g_1;
2753
+ };
2754
+ protoOf(EagerLabeller).b3a = function () {
2755
+ return this.p3g_1;
2756
+ };
2757
+ var EagerLabeller_instance;
2758
+ function EagerLabeller_getInstance() {
2759
+ if (EagerLabeller_instance == null)
2760
+ new EagerLabeller();
2761
+ return EagerLabeller_instance;
2762
+ }
2624
2763
  function GroundedLabellerBase() {
2625
2764
  LazyRawPrologContent.call(this);
2626
- this.z3f_1 = 'prolog.argumentation.graph.labelling.grounded';
2627
- this.a3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2765
+ this.r3g_1 = 'prolog.argumentation.graph.labelling.grounded.old';
2766
+ this.s3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2628
2767
  }
2629
2768
  protoOf(GroundedLabellerBase).y2b = function () {
2630
- return this.z3f_1;
2769
+ return this.r3g_1;
2631
2770
  };
2632
2771
  protoOf(GroundedLabellerBase).y39 = function () {
2633
2772
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
2634
2773
  };
2635
2774
  protoOf(GroundedLabellerBase).z39 = function () {
2636
- return 'grounded';
2775
+ return 'grounded_old';
2637
2776
  };
2638
2777
  protoOf(GroundedLabellerBase).i39 = function () {
2639
- return this.a3g_1;
2778
+ return this.s3g_1;
2640
2779
  };
2641
2780
  function GroundedLabellerOptimizedBase() {
2642
2781
  LazyRawPrologContent.call(this);
2643
- this.c3g_1 = 'prolog.argumentation.graph.labelling.grounded.optimized';
2644
- this.d3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2782
+ this.u3g_1 = 'prolog.argumentation.graph.labelling.grounded';
2783
+ this.v3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2645
2784
  }
2646
2785
  protoOf(GroundedLabellerOptimizedBase).y2b = function () {
2647
- return this.c3g_1;
2786
+ return this.u3g_1;
2648
2787
  };
2649
2788
  protoOf(GroundedLabellerOptimizedBase).y39 = function () {
2650
2789
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
2651
2790
  };
2652
2791
  protoOf(GroundedLabellerOptimizedBase).z39 = function () {
2653
- return 'grounded_hash';
2792
+ return 'grounded';
2654
2793
  };
2655
2794
  protoOf(GroundedLabellerOptimizedBase).i39 = function () {
2656
- return this.d3g_1;
2795
+ return this.v3g_1;
2796
+ };
2797
+ function IdealLabeller() {
2798
+ IdealLabeller_instance = this;
2799
+ LazyRawPrologContent.call(this);
2800
+ this.x3g_1 = 'prolog.argumentation.graph.labelling.ideal';
2801
+ this.y3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2802
+ this.z3g_1 = 'argumentLabelling :-\n findall(In, (\n preferred:::argumentLabelling,\n context_active(Branch),\n cache_check(complete(In, _, _, Branch))\n ), Results),\n utils::intersection(Results, Int),\n utils::sort(Int, SortedInt),\n cache_check(complete(SortedInt, _, _, Branch)),\n context_checkout(Branch).';
2803
+ }
2804
+ protoOf(IdealLabeller).y2b = function () {
2805
+ return this.x3g_1;
2806
+ };
2807
+ protoOf(IdealLabeller).y39 = function () {
2808
+ return Companion_getInstance_2().of(this.x3g_1, VOID, this.c3a());
2809
+ };
2810
+ protoOf(IdealLabeller).z39 = function () {
2811
+ return 'ideal';
2812
+ };
2813
+ protoOf(IdealLabeller).i39 = function () {
2814
+ return this.y3g_1;
2815
+ };
2816
+ protoOf(IdealLabeller).b3a = function () {
2817
+ return this.z3g_1;
2818
+ };
2819
+ var IdealLabeller_instance;
2820
+ function IdealLabeller_getInstance() {
2821
+ if (IdealLabeller_instance == null)
2822
+ new IdealLabeller();
2823
+ return IdealLabeller_instance;
2824
+ }
2825
+ function NaiveLabeller() {
2826
+ NaiveLabeller_instance = this;
2827
+ LazyRawPrologContent.call(this);
2828
+ this.b3h_1 = 'prolog.argumentation.graph.labelling.naive';
2829
+ this.c3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2830
+ this.d3h_1 = 'argumentLabelling :-\n cache_retract(naive(_, _, _, _)),\n conflictfree::argumentLabelling,\n maximalConflictFreeSet,\n utils::recoverArgumentLabellingId(In, Out, Und),\n \\+ cache_check(naive(In, Out, Und, _)),\n context_active(Branch),\n cache_assert(naive(In, Out, Und, Branch)).\n \n \nmaximalConflictFreeSet :-\n \\+ (\n context_check(clause(arg(IdX), _)),\n \\+ context_check(inId(IdX)),\n \\+ (\n (context_check(clause(att(IdX, IdY), _));context_check(clause(att(IdY, IdX), _))),\n context_check(inId(IdY))\n )\n ).';
2831
+ }
2832
+ protoOf(NaiveLabeller).y2b = function () {
2833
+ return this.b3h_1;
2834
+ };
2835
+ protoOf(NaiveLabeller).y39 = function () {
2836
+ return Companion_getInstance_2().of(this.b3h_1, VOID, this.c3a());
2837
+ };
2838
+ protoOf(NaiveLabeller).z39 = function () {
2839
+ return 'naive';
2840
+ };
2841
+ protoOf(NaiveLabeller).i39 = function () {
2842
+ return this.c3h_1;
2657
2843
  };
2844
+ protoOf(NaiveLabeller).b3a = function () {
2845
+ return this.d3h_1;
2846
+ };
2847
+ var NaiveLabeller_instance;
2848
+ function NaiveLabeller_getInstance() {
2849
+ if (NaiveLabeller_instance == null)
2850
+ new NaiveLabeller();
2851
+ return NaiveLabeller_instance;
2852
+ }
2658
2853
  function PassThroughStatementLabeller() {
2659
2854
  PassThroughStatementLabeller_instance = this;
2660
- this.e3g_1 = 'prolog.argumentation.graph.labelling.statement.pt';
2661
- this.f3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2855
+ this.e3h_1 = 'prolog.argumentation.graph.labelling.statement.pt';
2856
+ this.f3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2662
2857
  }
2663
2858
  protoOf(PassThroughStatementLabeller).y2b = function () {
2664
- return this.e3g_1;
2859
+ return this.e3h_1;
2665
2860
  };
2666
2861
  protoOf(PassThroughStatementLabeller).y39 = function () {
2667
- return Companion_getInstance_2().of(this.e3g_1, VOID, Companion_instance_0.ofWithDefaultUnificator([Labelling_getInstance().n1s()]));
2862
+ return Companion_getInstance_2().of(this.e3h_1, VOID, Companion_instance_0.ofWithDefaultUnificator([Labelling_getInstance().n1s()]));
2668
2863
  };
2669
2864
  protoOf(PassThroughStatementLabeller).z39 = function () {
2670
2865
  return 'statement_pass_through';
2671
2866
  };
2672
2867
  protoOf(PassThroughStatementLabeller).i39 = function () {
2673
- return this.f3g_1;
2868
+ return this.f3h_1;
2674
2869
  };
2675
2870
  var PassThroughStatementLabeller_instance;
2676
2871
  function PassThroughStatementLabeller_getInstance() {
@@ -2694,13 +2889,153 @@
2694
2889
  new Labelling();
2695
2890
  return Labelling_instance;
2696
2891
  }
2892
+ function PreferredLabeller() {
2893
+ PreferredLabeller_instance = this;
2894
+ LazyRawPrologContent.call(this);
2895
+ this.k3h_1 = 'prolog.argumentation.graph.labelling.preferred';
2896
+ this.l3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2897
+ this.m3h_1 = 'argumentLabelling :-\n findall(_, complete:::argumentLabelling, _),\n findall((In, Out, Und, Branch), (\n cache_check(complete(In, Out, Und, Branch))\n ), Results),\n filter(Results, Results, Filtered),\n member(X, Filtered),\n context_checkout(X).\n\nfilter([], _, []).\nfilter([(In, _, _, Branch)|T], All, [Branch|RT]) :-\n check_maximal(In, All), !,\n filter(T, All, RT).\nfilter([_|T], All, RT) :-\n filter(T, All, RT).\n \ncheck_maximal(In, All) :-\n \\+ (\n member((X, _, _, _), All),\n In \\== X,\n \\+ (\n member(Y, In), \n \\+ member(Y, X)\n )\n ).';
2898
+ }
2899
+ protoOf(PreferredLabeller).y2b = function () {
2900
+ return this.k3h_1;
2901
+ };
2902
+ protoOf(PreferredLabeller).y39 = function () {
2903
+ return Companion_getInstance_2().of(this.k3h_1, VOID, this.c3a());
2904
+ };
2905
+ protoOf(PreferredLabeller).z39 = function () {
2906
+ return 'preferred';
2907
+ };
2908
+ protoOf(PreferredLabeller).i39 = function () {
2909
+ return this.l3h_1;
2910
+ };
2911
+ protoOf(PreferredLabeller).b3a = function () {
2912
+ return this.m3h_1;
2913
+ };
2914
+ var PreferredLabeller_instance;
2915
+ function PreferredLabeller_getInstance() {
2916
+ if (PreferredLabeller_instance == null)
2917
+ new PreferredLabeller();
2918
+ return PreferredLabeller_instance;
2919
+ }
2920
+ function SemistableLabeller() {
2921
+ SemistableLabeller_instance = this;
2922
+ LazyRawPrologContent.call(this);
2923
+ this.o3h_1 = 'prolog.argumentation.graph.labelling.semistable';
2924
+ this.p3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2925
+ this.q3h_1 = 'argumentLabelling :-\n findall(_, complete:::argumentLabelling, _),\n findall((In, Out, Und, Branch), (\n cache_check(complete(In, Out, Und, Branch))\n ), Results),\n filter(Results, Results, Filtered),\n member(X, Filtered),\n context_checkout(X).\n\nfilter([], _, []).\nfilter([(_, _, Und, Branch)|T], All, [Branch|RT]) :-\n check_minimal(Und, All), !,\n filter(T, All, RT).\nfilter([_|T], All, RT) :-\n filter(T, All, RT).\n \ncheck_minimal(Und, All) :-\n \\+ (\n member((_, _, X, _), All),\n Und \\== X,\n \\+ (\n member(Z, X),\n \\+ member(Z, Und)\n )\n ).';
2926
+ }
2927
+ protoOf(SemistableLabeller).y2b = function () {
2928
+ return this.o3h_1;
2929
+ };
2930
+ protoOf(SemistableLabeller).y39 = function () {
2931
+ return Companion_getInstance_2().of(this.o3h_1, VOID, this.c3a());
2932
+ };
2933
+ protoOf(SemistableLabeller).z39 = function () {
2934
+ return 'semistable';
2935
+ };
2936
+ protoOf(SemistableLabeller).i39 = function () {
2937
+ return this.p3h_1;
2938
+ };
2939
+ protoOf(SemistableLabeller).b3a = function () {
2940
+ return this.q3h_1;
2941
+ };
2942
+ var SemistableLabeller_instance;
2943
+ function SemistableLabeller_getInstance() {
2944
+ if (SemistableLabeller_instance == null)
2945
+ new SemistableLabeller();
2946
+ return SemistableLabeller_instance;
2947
+ }
2948
+ function StableLabeller() {
2949
+ StableLabeller_instance = this;
2950
+ LazyRawPrologContent.call(this);
2951
+ this.s3h_1 = 'prolog.argumentation.graph.labelling.stable';
2952
+ this.t3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2953
+ this.u3h_1 = 'argumentLabelling :-\n findall(_, complete:::argumentLabelling, _),\n findall((In, Out, Und, Branch), (\n cache_check(complete(In, Out, Und, Branch))\n ), Results),\n filter(Results, Results, Filtered),\n member(X, Filtered),\n context_checkout(X).\n\nfilter([], _, []).\nfilter([(_, _, [], Branch)|T], All, [Branch|RT]) :- !,\n filter(T, All, RT).\nfilter([_|T], All, RT) :-\n filter(T, All, RT).\n ';
2954
+ }
2955
+ protoOf(StableLabeller).y2b = function () {
2956
+ return this.s3h_1;
2957
+ };
2958
+ protoOf(StableLabeller).y39 = function () {
2959
+ return Companion_getInstance_2().of(this.s3h_1, VOID, this.c3a());
2960
+ };
2961
+ protoOf(StableLabeller).z39 = function () {
2962
+ return 'stable';
2963
+ };
2964
+ protoOf(StableLabeller).i39 = function () {
2965
+ return this.t3h_1;
2966
+ };
2967
+ protoOf(StableLabeller).b3a = function () {
2968
+ return this.u3h_1;
2969
+ };
2970
+ var StableLabeller_instance;
2971
+ function StableLabeller_getInstance() {
2972
+ if (StableLabeller_instance == null)
2973
+ new StableLabeller();
2974
+ return StableLabeller_instance;
2975
+ }
2976
+ function Stage2Labeller() {
2977
+ Stage2Labeller_instance = this;
2978
+ LazyRawPrologContent.call(this);
2979
+ this.w3h_1 = 'prolog.argumentation.graph.labelling.stage2';
2980
+ this.x3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2981
+ this.y3h_1 = 'argumentLabelling :-\n cf2::compute(stage).\n';
2982
+ }
2983
+ protoOf(Stage2Labeller).y2b = function () {
2984
+ return this.w3h_1;
2985
+ };
2986
+ protoOf(Stage2Labeller).y39 = function () {
2987
+ return Companion_getInstance_2().of(this.w3h_1, VOID, this.c3a());
2988
+ };
2989
+ protoOf(Stage2Labeller).z39 = function () {
2990
+ return 'stage2';
2991
+ };
2992
+ protoOf(Stage2Labeller).i39 = function () {
2993
+ return this.x3h_1;
2994
+ };
2995
+ protoOf(Stage2Labeller).b3a = function () {
2996
+ return this.y3h_1;
2997
+ };
2998
+ var Stage2Labeller_instance;
2999
+ function Stage2Labeller_getInstance() {
3000
+ if (Stage2Labeller_instance == null)
3001
+ new Stage2Labeller();
3002
+ return Stage2Labeller_instance;
3003
+ }
3004
+ function StageLabeller() {
3005
+ StageLabeller_instance = this;
3006
+ LazyRawPrologContent.call(this);
3007
+ this.a3i_1 = 'prolog.argumentation.graph.labelling.stage';
3008
+ this.b3i_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3009
+ this.c3i_1 = 'argumentLabelling :-\n findall(_, naive:::argumentLabelling, _),\n findall((In, Out, Und, Branch), (\n cache_check(naive(In, Out, Und, Branch))\n ), Results),\n filter(Results, Results, Filtered),\n member(X, Filtered),\n context_checkout(X).\n\nfilter([], _, []).\nfilter([(_, _, Und, Branch)|T], All, [Branch|RT]) :-\n check_minimal(Und, All), !,\n filter(T, All, RT).\nfilter([_|T], All, RT) :-\n filter(T, All, RT).\n \ncheck_minimal(Und, All) :-\n \\+ (\n member((_, _, X, _), All),\n Und \\== X,\n \\+ (\n member(Z, X),\n \\+ member(Z, Und)\n )\n ).';
3010
+ }
3011
+ protoOf(StageLabeller).y2b = function () {
3012
+ return this.a3i_1;
3013
+ };
3014
+ protoOf(StageLabeller).y39 = function () {
3015
+ return Companion_getInstance_2().of(this.a3i_1, VOID, this.c3a());
3016
+ };
3017
+ protoOf(StageLabeller).z39 = function () {
3018
+ return 'stage';
3019
+ };
3020
+ protoOf(StageLabeller).i39 = function () {
3021
+ return this.b3i_1;
3022
+ };
3023
+ protoOf(StageLabeller).b3a = function () {
3024
+ return this.c3i_1;
3025
+ };
3026
+ var StageLabeller_instance;
3027
+ function StageLabeller_getInstance() {
3028
+ if (StageLabeller_instance == null)
3029
+ new StageLabeller();
3030
+ return StageLabeller_instance;
3031
+ }
2697
3032
  function StatementLabellerBase() {
2698
3033
  LazyRawPrologContent.call(this);
2699
- this.k3g_1 = 'prolog.argumentation.graph.labelling.statement';
2700
- this.l3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3034
+ this.e3i_1 = 'prolog.argumentation.graph.labelling.statement';
3035
+ this.f3i_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
2701
3036
  }
2702
3037
  protoOf(StatementLabellerBase).y2b = function () {
2703
- return this.k3g_1;
3038
+ return this.e3i_1;
2704
3039
  };
2705
3040
  protoOf(StatementLabellerBase).y39 = function () {
2706
3041
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -2709,8 +3044,36 @@
2709
3044
  return 'statement';
2710
3045
  };
2711
3046
  protoOf(StatementLabellerBase).i39 = function () {
2712
- return this.l3g_1;
3047
+ return this.f3i_1;
3048
+ };
3049
+ function StronglyAdmissibleLabeller() {
3050
+ StronglyAdmissibleLabeller_instance = this;
3051
+ LazyRawPrologContent.call(this);
3052
+ this.h3i_1 = 'prolog.argumentation.graph.labelling.stronglyadmissible';
3053
+ this.i3i_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3054
+ this.j3i_1 = 'argumentLabelling :-\n admissible::argumentLabelling,\n stronglyAdmissibleSet.\n\nstronglyAdmissibleSet :-\n context_active(Branch),\n \\+ (context_check(inId(H)), \\+ stronglyAdmissible(Branch, H)),\n context_checkout(Branch).\nstronglyAdmissible(Branch, H) :-\n context_branch(Branch, _),\n context_retract(inId(H)),\n admissible::admissible(H).';
3055
+ }
3056
+ protoOf(StronglyAdmissibleLabeller).y2b = function () {
3057
+ return this.h3i_1;
3058
+ };
3059
+ protoOf(StronglyAdmissibleLabeller).y39 = function () {
3060
+ return Companion_getInstance_2().of(this.h3i_1, VOID, this.c3a());
3061
+ };
3062
+ protoOf(StronglyAdmissibleLabeller).z39 = function () {
3063
+ return 'stronglyadmissible';
2713
3064
  };
3065
+ protoOf(StronglyAdmissibleLabeller).i39 = function () {
3066
+ return this.i3i_1;
3067
+ };
3068
+ protoOf(StronglyAdmissibleLabeller).b3a = function () {
3069
+ return this.j3i_1;
3070
+ };
3071
+ var StronglyAdmissibleLabeller_instance;
3072
+ function StronglyAdmissibleLabeller_getInstance() {
3073
+ if (StronglyAdmissibleLabeller_instance == null)
3074
+ new StronglyAdmissibleLabeller();
3075
+ return StronglyAdmissibleLabeller_instance;
3076
+ }
2714
3077
  function Companion_2() {
2715
3078
  }
2716
3079
  protoOf(Companion_2).d39 = function () {
@@ -2771,11 +3134,11 @@
2771
3134
  }
2772
3135
  function RuleParserBase() {
2773
3136
  LazyRawPrologContent.call(this);
2774
- this.n3g_1 = 'prolog.argumentation.parser';
2775
- this.o3g_1 = Companion_instance_8.d39().plusOperatorSet(Companion_instance_10.d39()).plusOperatorSet(Companion_getInstance_0().DEFAULT);
3137
+ this.l3i_1 = 'prolog.argumentation.parser';
3138
+ this.m3i_1 = Companion_instance_8.d39().plusOperatorSet(Companion_instance_10.d39()).plusOperatorSet(Companion_getInstance_0().DEFAULT);
2776
3139
  }
2777
3140
  protoOf(RuleParserBase).y2b = function () {
2778
- return this.n3g_1;
3141
+ return this.l3i_1;
2779
3142
  };
2780
3143
  protoOf(RuleParserBase).y39 = function () {
2781
3144
  var tmp = Companion_getInstance_2();
@@ -2799,7 +3162,7 @@
2799
3162
  return 'parser';
2800
3163
  };
2801
3164
  protoOf(RuleParserBase).i39 = function () {
2802
- return this.o3g_1;
3165
+ return this.m3i_1;
2803
3166
  };
2804
3167
  function StrictRules$computeAllSubstitutions$lambda($this_computeAllSubstitutions) {
2805
3168
  return function (clauses, prologScope) {
@@ -2819,7 +3182,7 @@
2819
3182
  var _iterator__ex2g4s_0 = destination.p();
2820
3183
  while (_iterator__ex2g4s_0.s()) {
2821
3184
  var item = _iterator__ex2g4s_0.t();
2822
- var tmp$ret$3 = prologScope.logicListOfAny(['rule_' + Default_getInstance().wf(0, 2147483647), ConversionUtils_instance.p3g(item, $this_computeAllSubstitutions), ensureNotNull(item.nw())]);
3185
+ var tmp$ret$3 = prologScope.logicListOfAny(['rule_' + Default_getInstance().wf(0, 2147483647), ConversionUtils_instance.n3i(item, $this_computeAllSubstitutions), ensureNotNull(item.nw())]);
2823
3186
  destination_0.m(tmp$ret$3);
2824
3187
  }
2825
3188
  return listToTerm(destination_0);
@@ -2829,12 +3192,12 @@
2829
3192
  StrictRules_instance = this;
2830
3193
  WithoutSideEffects.call(this, 'prologStrictRules');
2831
3194
  }
2832
- protoOf(StrictRules).r3g = function (_this__u8e3s4, first) {
3195
+ protoOf(StrictRules).p3i = function (_this__u8e3s4, first) {
2833
3196
  var tmp = ConversionUtils_instance;
2834
- return tmp.s3g(_this__u8e3s4, first, VOID, StrictRules$computeAllSubstitutions$lambda(_this__u8e3s4));
3197
+ return tmp.q3i(_this__u8e3s4, first, VOID, StrictRules$computeAllSubstitutions$lambda(_this__u8e3s4));
2835
3198
  };
2836
3199
  protoOf(StrictRules).x2g = function (_this__u8e3s4, first) {
2837
- return this.r3g(_this__u8e3s4, first);
3200
+ return this.p3i(_this__u8e3s4, first);
2838
3201
  };
2839
3202
  var StrictRules_instance;
2840
3203
  function StrictRules_getInstance() {
@@ -2868,12 +3231,12 @@
2868
3231
  Axioms_instance = this;
2869
3232
  WithoutSideEffects.call(this, 'prologAxioms');
2870
3233
  }
2871
- protoOf(Axioms).r3g = function (_this__u8e3s4, first) {
3234
+ protoOf(Axioms).p3i = function (_this__u8e3s4, first) {
2872
3235
  var tmp = ConversionUtils_instance;
2873
- return tmp.s3g(_this__u8e3s4, first, VOID, Axioms$computeAllSubstitutions$lambda);
3236
+ return tmp.q3i(_this__u8e3s4, first, VOID, Axioms$computeAllSubstitutions$lambda);
2874
3237
  };
2875
3238
  protoOf(Axioms).x2g = function (_this__u8e3s4, first) {
2876
- return this.r3g(_this__u8e3s4, first);
3239
+ return this.p3i(_this__u8e3s4, first);
2877
3240
  };
2878
3241
  var Axioms_instance;
2879
3242
  function Axioms_getInstance() {
@@ -2914,12 +3277,12 @@
2914
3277
  Bps_instance = this;
2915
3278
  WithoutSideEffects.call(this, 'bpsNew');
2916
3279
  }
2917
- protoOf(Bps).r3g = function (_this__u8e3s4, first) {
3280
+ protoOf(Bps).p3i = function (_this__u8e3s4, first) {
2918
3281
  var tmp = ConversionUtils_instance;
2919
- return tmp.v3g(_this__u8e3s4, first, true, Bps$computeAllSubstitutions$lambda);
3282
+ return tmp.t3i(_this__u8e3s4, first, true, Bps$computeAllSubstitutions$lambda);
2920
3283
  };
2921
3284
  protoOf(Bps).x2g = function (_this__u8e3s4, first) {
2922
- return this.r3g(_this__u8e3s4, first);
3285
+ return this.p3i(_this__u8e3s4, first);
2923
3286
  };
2924
3287
  var Bps_instance;
2925
3288
  function Bps_getInstance() {
@@ -2953,12 +3316,12 @@
2953
3316
  Premises_instance = this;
2954
3317
  WithoutSideEffects.call(this, 'prologPremises');
2955
3318
  }
2956
- protoOf(Premises).r3g = function (_this__u8e3s4, first) {
3319
+ protoOf(Premises).p3i = function (_this__u8e3s4, first) {
2957
3320
  var tmp = ConversionUtils_instance;
2958
- return tmp.s3g(_this__u8e3s4, first, VOID, Premises$computeAllSubstitutions$lambda);
3321
+ return tmp.q3i(_this__u8e3s4, first, VOID, Premises$computeAllSubstitutions$lambda);
2959
3322
  };
2960
3323
  protoOf(Premises).x2g = function (_this__u8e3s4, first) {
2961
- return this.r3g(_this__u8e3s4, first);
3324
+ return this.p3i(_this__u8e3s4, first);
2962
3325
  };
2963
3326
  var Premises_instance;
2964
3327
  function Premises_getInstance() {
@@ -3024,7 +3387,7 @@
3024
3387
  }
3025
3388
  // Inline function 'kotlin.let' call
3026
3389
  var it = tmp_3;
3027
- var tmp$ret$6 = prologScope.logicListOfAny(['rule_' + Default_getInstance().wf(0, 2147483647), ConversionUtils_instance.p3g(it, $this_computeAllSubstitutions), ensureNotNull(it.nw())]);
3390
+ var tmp$ret$6 = prologScope.logicListOfAny(['rule_' + Default_getInstance().wf(0, 2147483647), ConversionUtils_instance.n3i(it, $this_computeAllSubstitutions), ensureNotNull(it.nw())]);
3028
3391
  destination_0.m(tmp$ret$6);
3029
3392
  }
3030
3393
  return listToTerm(destination_0);
@@ -3034,12 +3397,12 @@
3034
3397
  DefeasibleRules_instance = this;
3035
3398
  WithoutSideEffects.call(this, 'prologDefeasibleRules');
3036
3399
  }
3037
- protoOf(DefeasibleRules).r3g = function (_this__u8e3s4, first) {
3400
+ protoOf(DefeasibleRules).p3i = function (_this__u8e3s4, first) {
3038
3401
  var tmp = ConversionUtils_instance;
3039
- return tmp.s3g(_this__u8e3s4, first, VOID, DefeasibleRules$computeAllSubstitutions$lambda(_this__u8e3s4));
3402
+ return tmp.q3i(_this__u8e3s4, first, VOID, DefeasibleRules$computeAllSubstitutions$lambda(_this__u8e3s4));
3040
3403
  };
3041
3404
  protoOf(DefeasibleRules).x2g = function (_this__u8e3s4, first) {
3042
- return this.r3g(_this__u8e3s4, first);
3405
+ return this.p3i(_this__u8e3s4, first);
3043
3406
  };
3044
3407
  var DefeasibleRules_instance;
3045
3408
  function DefeasibleRules_getInstance() {
@@ -3120,10 +3483,10 @@
3120
3483
  }
3121
3484
  function AutoTransposition() {
3122
3485
  }
3123
- protoOf(AutoTransposition).t3d = function () {
3486
+ protoOf(AutoTransposition).v3d = function () {
3124
3487
  return 'autoTransposition';
3125
3488
  };
3126
- protoOf(AutoTransposition).w3d = function () {
3489
+ protoOf(AutoTransposition).y3d = function () {
3127
3490
  return false;
3128
3491
  };
3129
3492
  var AutoTransposition_instance;
@@ -3132,10 +3495,10 @@
3132
3495
  }
3133
3496
  function PrologStrictCompatibility() {
3134
3497
  }
3135
- protoOf(PrologStrictCompatibility).t3d = function () {
3498
+ protoOf(PrologStrictCompatibility).v3d = function () {
3136
3499
  return 'prologStrictCompatibility';
3137
3500
  };
3138
- protoOf(PrologStrictCompatibility).w3d = function () {
3501
+ protoOf(PrologStrictCompatibility).y3d = function () {
3139
3502
  return false;
3140
3503
  };
3141
3504
  var PrologStrictCompatibility_instance;
@@ -3197,16 +3560,16 @@
3197
3560
  }
3198
3561
  function ConversionUtils() {
3199
3562
  }
3200
- protoOf(ConversionUtils).p3g = function (target, context) {
3563
+ protoOf(ConversionUtils).n3i = function (target, context) {
3201
3564
  return prolog(VOID, ConversionUtils$modifiers$lambda(target, context));
3202
3565
  };
3203
- protoOf(ConversionUtils).v3g = function (context, first, force, mapper) {
3566
+ protoOf(ConversionUtils).t3i = function (context, first, force, mapper) {
3204
3567
  Companion_getInstance_9().v2e(context, 0);
3205
3568
  return prolog(VOID, ConversionUtils$commonMap$lambda(first, force, context, mapper));
3206
3569
  };
3207
- protoOf(ConversionUtils).s3g = function (context, first, force, mapper, $super) {
3570
+ protoOf(ConversionUtils).q3i = function (context, first, force, mapper, $super) {
3208
3571
  force = force === VOID ? false : force;
3209
- return $super === VOID ? this.v3g(context, first, force, mapper) : $super.v3g.call(this, context, first, force, mapper);
3572
+ return $super === VOID ? this.t3i(context, first, force, mapper) : $super.t3i.call(this, context, first, force, mapper);
3210
3573
  };
3211
3574
  var ConversionUtils_instance;
3212
3575
  function ConversionUtils_getInstance() {
@@ -3214,11 +3577,11 @@
3214
3577
  }
3215
3578
  function StructuredModeBase() {
3216
3579
  LazyRawPrologContent.call(this);
3217
- this.b3h_1 = 'prolog.argumentation.structured';
3218
- this.c3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3580
+ this.z3i_1 = 'prolog.argumentation.structured';
3581
+ this.a3j_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3219
3582
  }
3220
3583
  protoOf(StructuredModeBase).y2b = function () {
3221
- return this.b3h_1;
3584
+ return this.z3i_1;
3222
3585
  };
3223
3586
  protoOf(StructuredModeBase).y39 = function () {
3224
3587
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -3227,14 +3590,14 @@
3227
3590
  return 'structured';
3228
3591
  };
3229
3592
  protoOf(StructuredModeBase).i39 = function () {
3230
- return this.c3h_1;
3593
+ return this.a3j_1;
3231
3594
  };
3232
3595
  function QueryMode() {
3233
3596
  }
3234
- protoOf(QueryMode).t3d = function () {
3597
+ protoOf(QueryMode).v3d = function () {
3235
3598
  return 'queryMode';
3236
3599
  };
3237
- protoOf(QueryMode).w3d = function () {
3600
+ protoOf(QueryMode).y3d = function () {
3238
3601
  return true;
3239
3602
  };
3240
3603
  var QueryMode_instance;
@@ -3243,11 +3606,11 @@
3243
3606
  }
3244
3607
  function AttackRelationBase() {
3245
3608
  LazyRawPrologContent.call(this);
3246
- this.e3h_1 = 'prolog.argumentation.attack';
3247
- this.f3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3609
+ this.c3j_1 = 'prolog.argumentation.attack';
3610
+ this.d3j_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3248
3611
  }
3249
3612
  protoOf(AttackRelationBase).y2b = function () {
3250
- return this.e3h_1;
3613
+ return this.c3j_1;
3251
3614
  };
3252
3615
  protoOf(AttackRelationBase).y39 = function () {
3253
3616
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -3256,15 +3619,15 @@
3256
3619
  return 'attack';
3257
3620
  };
3258
3621
  protoOf(AttackRelationBase).i39 = function () {
3259
- return this.f3h_1;
3622
+ return this.d3j_1;
3260
3623
  };
3261
3624
  function DebugBase() {
3262
3625
  LazyRawPrologContent.call(this);
3263
- this.h3h_1 = 'prolog.argumentation.debug';
3264
- this.i3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3626
+ this.f3j_1 = 'prolog.argumentation.debug';
3627
+ this.g3j_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3265
3628
  }
3266
3629
  protoOf(DebugBase).y2b = function () {
3267
- return this.h3h_1;
3630
+ return this.f3j_1;
3268
3631
  };
3269
3632
  protoOf(DebugBase).y39 = function () {
3270
3633
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -3273,15 +3636,15 @@
3273
3636
  return 'debug';
3274
3637
  };
3275
3638
  protoOf(DebugBase).i39 = function () {
3276
- return this.i3h_1;
3639
+ return this.g3j_1;
3277
3640
  };
3278
3641
  function SuperiorityRelationBase() {
3279
3642
  LazyRawPrologContent.call(this);
3280
- this.k3h_1 = 'prolog.argumentation.superiority';
3281
- this.l3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3643
+ this.i3j_1 = 'prolog.argumentation.superiority';
3644
+ this.j3j_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3282
3645
  }
3283
3646
  protoOf(SuperiorityRelationBase).y2b = function () {
3284
- return this.k3h_1;
3647
+ return this.i3j_1;
3285
3648
  };
3286
3649
  protoOf(SuperiorityRelationBase).y39 = function () {
3287
3650
  return Companion_getInstance_2().of(this.y2b(), VOID, this.c3a());
@@ -3290,14 +3653,14 @@
3290
3653
  return 'superiority';
3291
3654
  };
3292
3655
  protoOf(SuperiorityRelationBase).i39 = function () {
3293
- return this.l3h_1;
3656
+ return this.j3j_1;
3294
3657
  };
3295
3658
  function OrderingPrinciple() {
3296
3659
  }
3297
- protoOf(OrderingPrinciple).t3d = function () {
3660
+ protoOf(OrderingPrinciple).v3d = function () {
3298
3661
  return 'orderingPrinciple';
3299
3662
  };
3300
- protoOf(OrderingPrinciple).w3d = function () {
3663
+ protoOf(OrderingPrinciple).y3d = function () {
3301
3664
  return 'last';
3302
3665
  };
3303
3666
  var OrderingPrinciple_instance;
@@ -3306,10 +3669,10 @@
3306
3669
  }
3307
3670
  function OrderingComparator() {
3308
3671
  }
3309
- protoOf(OrderingComparator).t3d = function () {
3672
+ protoOf(OrderingComparator).v3d = function () {
3310
3673
  return 'orderingComparator';
3311
3674
  };
3312
- protoOf(OrderingComparator).w3d = function () {
3675
+ protoOf(OrderingComparator).y3d = function () {
3313
3676
  return 'elitist';
3314
3677
  };
3315
3678
  var OrderingComparator_instance;
@@ -3318,35 +3681,35 @@
3318
3681
  }
3319
3682
  function UtilsBase() {
3320
3683
  LazyRawPrologContent.call(this);
3321
- this.n3h_1 = 'prolog.argumentation.utils';
3322
- this.o3h_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3684
+ this.l3j_1 = 'prolog.argumentation.utils';
3685
+ this.m3j_1 = Companion_instance_8.d39().plusOperatorSet(Companion_getInstance_0().DEFAULT);
3323
3686
  }
3324
3687
  protoOf(UtilsBase).y2b = function () {
3325
- return this.n3h_1;
3688
+ return this.l3j_1;
3326
3689
  };
3327
3690
  protoOf(UtilsBase).y39 = function () {
3328
3691
  var tmp0_$this = Companion_getInstance_2();
3329
3692
  var tmp1_alias = this.y2b();
3330
3693
  var tmp2_clauses = this.c3a();
3331
- var tmp = to(AppendOptimized_getInstance().p3h_1, AppendOptimized_getInstance());
3332
- var tmp_0 = to(AssertAll_getInstance().q3h_1, AssertAll_getInstance());
3694
+ var tmp = to(AppendOptimized_getInstance().n3j_1, AppendOptimized_getInstance());
3695
+ var tmp_0 = to(AssertAll_getInstance().o3j_1, AssertAll_getInstance());
3333
3696
  // Inline function 'it.unibo.tuprolog.solve.AbstractWrapper.descriptionPair' call
3334
3697
  var this_0 = ArgumentHash_getInstance();
3335
3698
  var tmp$ret$0 = to(this_0.signature, this_0.n1s());
3336
- var tmp3_primitives = mapOf_0([tmp, tmp_0, tmp$ret$0, to(Contains_getInstance().r3h_1, Contains_getInstance()), to(ContainsAny_getInstance().s3h_1, ContainsAny_getInstance())]);
3699
+ var tmp3_primitives = mapOf_0([tmp, tmp_0, tmp$ret$0, to(Contains_getInstance().p3j_1, Contains_getInstance()), to(ContainsAny_getInstance().q3j_1, ContainsAny_getInstance())]);
3337
3700
  return tmp0_$this.of(tmp1_alias, tmp3_primitives, tmp2_clauses);
3338
3701
  };
3339
3702
  protoOf(UtilsBase).z39 = function () {
3340
3703
  return 'utils';
3341
3704
  };
3342
3705
  protoOf(UtilsBase).i39 = function () {
3343
- return this.o3h_1;
3706
+ return this.m3j_1;
3344
3707
  };
3345
3708
  function AppendOptimized$solve$slambda($request, $res, $list1, $list2, resultContinuation) {
3346
- this.b3i_1 = $request;
3347
- this.c3i_1 = $res;
3348
- this.d3i_1 = $list1;
3349
- this.e3i_1 = $list2;
3709
+ this.z3j_1 = $request;
3710
+ this.a3k_1 = $res;
3711
+ this.b3k_1 = $list1;
3712
+ this.c3k_1 = $list2;
3350
3713
  CoroutineImpl.call(this, resultContinuation);
3351
3714
  }
3352
3715
  protoOf(AppendOptimized$solve$slambda).c2o = function ($this$sequence, $completion) {
@@ -3367,7 +3730,7 @@
3367
3730
  case 0:
3368
3731
  this.c8_1 = 2;
3369
3732
  this.b8_1 = 1;
3370
- suspendResult = this.f3i_1.pc(this.b3i_1.replyWith(Companion_getInstance_3().of(this.c3i_1, Companion_instance_6.ofList(plus(this.d3i_1.toList(), this.e3i_1.toList()))), VOID, []), this);
3733
+ suspendResult = this.d3k_1.pc(this.z3j_1.replyWith(Companion_getInstance_3().of(this.a3k_1, Companion_instance_6.ofList(plus(this.b3k_1.toList(), this.c3k_1.toList()))), VOID, []), this);
3371
3734
  if (suspendResult === get_COROUTINE_SUSPENDED()) {
3372
3735
  return suspendResult;
3373
3736
  }
@@ -3390,8 +3753,8 @@
3390
3753
  while (true);
3391
3754
  };
3392
3755
  protoOf(AppendOptimized$solve$slambda).d2o = function ($this$sequence, completion) {
3393
- var i = new AppendOptimized$solve$slambda(this.b3i_1, this.c3i_1, this.d3i_1, this.e3i_1, completion);
3394
- i.f3i_1 = $this$sequence;
3756
+ var i = new AppendOptimized$solve$slambda(this.z3j_1, this.a3k_1, this.b3k_1, this.c3k_1, completion);
3757
+ i.d3k_1 = $this$sequence;
3395
3758
  return i;
3396
3759
  };
3397
3760
  function AppendOptimized$solve$slambda_0($request, $res, $list1, $list2, resultContinuation) {
@@ -3404,7 +3767,7 @@
3404
3767
  }
3405
3768
  function AppendOptimized() {
3406
3769
  AppendOptimized_instance = this;
3407
- this.p3h_1 = new Signature('append_fast', 3);
3770
+ this.n3j_1 = new Signature('append_fast', 3);
3408
3771
  }
3409
3772
  protoOf(AppendOptimized).g2e = function (request) {
3410
3773
  var list1 = request.arguments.w(0);
@@ -3442,7 +3805,7 @@
3442
3805
  };
3443
3806
  }
3444
3807
  function AssertAll$solve$slambda($request, resultContinuation) {
3445
- this.o3i_1 = $request;
3808
+ this.m3k_1 = $request;
3446
3809
  CoroutineImpl.call(this, resultContinuation);
3447
3810
  }
3448
3811
  protoOf(AssertAll$solve$slambda).c2o = function ($this$sequence, $completion) {
@@ -3463,7 +3826,7 @@
3463
3826
  case 0:
3464
3827
  this.c8_1 = 2;
3465
3828
  this.b8_1 = 1;
3466
- suspendResult = this.p3i_1.pc(this.o3i_1.replyWithCondition(true, VOID, []), this);
3829
+ suspendResult = this.n3k_1.pc(this.m3k_1.replyWithCondition(true, VOID, []), this);
3467
3830
  if (suspendResult === get_COROUTINE_SUSPENDED()) {
3468
3831
  return suspendResult;
3469
3832
  }
@@ -3486,8 +3849,8 @@
3486
3849
  while (true);
3487
3850
  };
3488
3851
  protoOf(AssertAll$solve$slambda).d2o = function ($this$sequence, completion) {
3489
- var i = new AssertAll$solve$slambda(this.o3i_1, completion);
3490
- i.p3i_1 = $this$sequence;
3852
+ var i = new AssertAll$solve$slambda(this.m3k_1, completion);
3853
+ i.n3k_1 = $this$sequence;
3491
3854
  return i;
3492
3855
  };
3493
3856
  function AssertAll$solve$slambda_0($request, resultContinuation) {
@@ -3500,7 +3863,7 @@
3500
3863
  }
3501
3864
  function AssertAll() {
3502
3865
  AssertAll_instance = this;
3503
- this.q3h_1 = new Signature('assert_all', 1);
3866
+ this.o3j_1 = new Signature('assert_all', 1);
3504
3867
  }
3505
3868
  protoOf(AssertAll).g2e = function (request) {
3506
3869
  var list = request.arguments.w(0);
@@ -3536,9 +3899,9 @@
3536
3899
  return ArgumentHash_instance;
3537
3900
  }
3538
3901
  function Contains$solve$slambda($request, $list, $elem, resultContinuation) {
3539
- this.z3i_1 = $request;
3540
- this.a3j_1 = $list;
3541
- this.b3j_1 = $elem;
3902
+ this.x3k_1 = $request;
3903
+ this.y3k_1 = $list;
3904
+ this.z3k_1 = $elem;
3542
3905
  CoroutineImpl.call(this, resultContinuation);
3543
3906
  }
3544
3907
  protoOf(Contains$solve$slambda).c2o = function ($this$sequence, $completion) {
@@ -3559,7 +3922,7 @@
3559
3922
  case 0:
3560
3923
  this.c8_1 = 2;
3561
3924
  this.b8_1 = 1;
3562
- var tmp0 = this.a3j_1.toList();
3925
+ var tmp0 = this.y3k_1.toList();
3563
3926
  var tmp$ret$0;
3564
3927
  l$ret$1: do {
3565
3928
  var tmp_0;
@@ -3575,7 +3938,7 @@
3575
3938
  var _iterator__ex2g4s = tmp0.p();
3576
3939
  while (_iterator__ex2g4s.s()) {
3577
3940
  var element = _iterator__ex2g4s.t();
3578
- if (Companion_getInstance_1().u1i().match(element, this.b3j_1)) {
3941
+ if (Companion_getInstance_1().u1i().match(element, this.z3k_1)) {
3579
3942
  tmp$ret$0 = true;
3580
3943
  break l$ret$1;
3581
3944
  }
@@ -3583,7 +3946,7 @@
3583
3946
  tmp$ret$0 = false;
3584
3947
  }
3585
3948
  while (false);
3586
- suspendResult = this.c3j_1.pc(this.z3i_1.replyWithCondition(tmp$ret$0, VOID, []), this);
3949
+ suspendResult = this.a3l_1.pc(this.x3k_1.replyWithCondition(tmp$ret$0, VOID, []), this);
3587
3950
  if (suspendResult === get_COROUTINE_SUSPENDED()) {
3588
3951
  return suspendResult;
3589
3952
  }
@@ -3606,8 +3969,8 @@
3606
3969
  while (true);
3607
3970
  };
3608
3971
  protoOf(Contains$solve$slambda).d2o = function ($this$sequence, completion) {
3609
- var i = new Contains$solve$slambda(this.z3i_1, this.a3j_1, this.b3j_1, completion);
3610
- i.c3j_1 = $this$sequence;
3972
+ var i = new Contains$solve$slambda(this.x3k_1, this.y3k_1, this.z3k_1, completion);
3973
+ i.a3l_1 = $this$sequence;
3611
3974
  return i;
3612
3975
  };
3613
3976
  function Contains$solve$slambda_0($request, $list, $elem, resultContinuation) {
@@ -3620,7 +3983,7 @@
3620
3983
  }
3621
3984
  function Contains() {
3622
3985
  Contains_instance = this;
3623
- this.r3h_1 = new Signature('contains', 2);
3986
+ this.p3j_1 = new Signature('contains', 2);
3624
3987
  }
3625
3988
  protoOf(Contains).g2e = function (request) {
3626
3989
  var elem = request.arguments.w(0);
@@ -3640,9 +4003,9 @@
3640
4003
  return Contains_instance;
3641
4004
  }
3642
4005
  function ContainsAny$solve$slambda($request, $list, $elemList, resultContinuation) {
3643
- this.l3j_1 = $request;
3644
- this.m3j_1 = $list;
3645
- this.n3j_1 = $elemList;
4006
+ this.j3l_1 = $request;
4007
+ this.k3l_1 = $list;
4008
+ this.l3l_1 = $elemList;
3646
4009
  CoroutineImpl.call(this, resultContinuation);
3647
4010
  }
3648
4011
  protoOf(ContainsAny$solve$slambda).c2o = function ($this$sequence, $completion) {
@@ -3663,13 +4026,13 @@
3663
4026
  case 0:
3664
4027
  this.c8_1 = 2;
3665
4028
  this.b8_1 = 1;
3666
- var tmp0 = this.m3j_1.xs();
4029
+ var tmp0 = this.k3l_1.xs();
3667
4030
  var tmp$ret$2;
3668
4031
  l$ret$3: do {
3669
4032
  var _iterator__ex2g4s = tmp0.p();
3670
4033
  while (_iterator__ex2g4s.s()) {
3671
4034
  var element = _iterator__ex2g4s.t();
3672
- var tmp0_0 = this.n3j_1.xs();
4035
+ var tmp0_0 = this.l3l_1.xs();
3673
4036
  var tmp$ret$0;
3674
4037
  l$ret$1: do {
3675
4038
  var _iterator__ex2g4s_0 = tmp0_0.p();
@@ -3691,7 +4054,7 @@
3691
4054
  tmp$ret$2 = false;
3692
4055
  }
3693
4056
  while (false);
3694
- suspendResult = this.o3j_1.pc(this.l3j_1.replyWithCondition(tmp$ret$2, VOID, []), this);
4057
+ suspendResult = this.m3l_1.pc(this.j3l_1.replyWithCondition(tmp$ret$2, VOID, []), this);
3695
4058
  if (suspendResult === get_COROUTINE_SUSPENDED()) {
3696
4059
  return suspendResult;
3697
4060
  }
@@ -3714,8 +4077,8 @@
3714
4077
  while (true);
3715
4078
  };
3716
4079
  protoOf(ContainsAny$solve$slambda).d2o = function ($this$sequence, completion) {
3717
- var i = new ContainsAny$solve$slambda(this.l3j_1, this.m3j_1, this.n3j_1, completion);
3718
- i.o3j_1 = $this$sequence;
4080
+ var i = new ContainsAny$solve$slambda(this.j3l_1, this.k3l_1, this.l3l_1, completion);
4081
+ i.m3l_1 = $this$sequence;
3719
4082
  return i;
3720
4083
  };
3721
4084
  function ContainsAny$solve$slambda_0($request, $list, $elemList, resultContinuation) {
@@ -3728,7 +4091,7 @@
3728
4091
  }
3729
4092
  function ContainsAny() {
3730
4093
  ContainsAny_instance = this;
3731
- this.s3h_1 = new Signature('contains_any', 2);
4094
+ this.q3j_1 = new Signature('contains_any', 2);
3732
4095
  }
3733
4096
  protoOf(ContainsAny).g2e = function (request) {
3734
4097
  var elemList = request.arguments.w(0);
@@ -3753,7 +4116,7 @@
3753
4116
  function mineGraph(_this__u8e3s4, context) {
3754
4117
  // Inline function 'kotlin.let' call
3755
4118
  var it = mineArguments(_this__u8e3s4, context);
3756
- return Companion_instance_12.p3j(mineLabels(_this__u8e3s4, context, it), mineAttacks(_this__u8e3s4, context, it), mineSupports(_this__u8e3s4, context, it));
4119
+ return Companion_instance_12.n3l(mineLabels(_this__u8e3s4, context, it), mineAttacks(_this__u8e3s4, context, it), mineSupports(_this__u8e3s4, context, it));
3757
4120
  }
3758
4121
  function mineArguments(_this__u8e3s4, context) {
3759
4122
  return toList(logicProgramming(arguments$lambda(_this__u8e3s4, context)));
@@ -3772,7 +4135,7 @@
3772
4135
  var _iterator__ex2g4s_0 = labels.p();
3773
4136
  while (_iterator__ex2g4s_0.s()) {
3774
4137
  var element = _iterator__ex2g4s_0.t();
3775
- if (Companion_getInstance_1().u1i().match(item.a3k(), element.fc_1)) {
4138
+ if (Companion_getInstance_1().u1i().match(item.y3l(), element.fc_1)) {
3776
4139
  tmp$ret$1 = element;
3777
4140
  break $l$block;
3778
4141
  }
@@ -3809,22 +4172,22 @@
3809
4172
  };
3810
4173
  }
3811
4174
  function arguments$lambda$lambda_1(solution) {
3812
- return Companion_instance_11.b3k(solution);
4175
+ return Companion_instance_11.z3l(solution);
3813
4176
  }
3814
4177
  function arguments$lambda$lambda_2(it) {
3815
- return it.z3j_1.v();
4178
+ return it.x3l_1.v();
3816
4179
  }
3817
4180
  function arguments$lambda$lambda_3(it) {
3818
- return it.q3j_1.v();
4181
+ return it.o3l_1.v();
3819
4182
  }
3820
4183
  function arguments$lambda$lambda_4(it) {
3821
- return it.s3j_1;
4184
+ return it.q3l_1;
3822
4185
  }
3823
4186
  function arguments$lambda$lambda_5(it) {
3824
- return it.r3j_1;
4187
+ return it.p3l_1;
3825
4188
  }
3826
4189
  function arguments$lambda$lambda_6(index, arg) {
3827
- arg.y3j_1 = 'A' + index;
4190
+ arg.w3l_1 = 'A' + index;
3828
4191
  return arg;
3829
4192
  }
3830
4193
  function arguments$lambda($this_arguments, $context) {
@@ -3857,7 +4220,7 @@
3857
4220
  var _iterator__ex2g4s = tmp0.p();
3858
4221
  while (_iterator__ex2g4s.s()) {
3859
4222
  var element = _iterator__ex2g4s.t();
3860
- if (Companion_getInstance_1().u1i().match(element.a3k(), solution.fc_1)) {
4223
+ if (Companion_getInstance_1().u1i().match(element.y3l(), solution.fc_1)) {
3861
4224
  tmp$ret$1 = element;
3862
4225
  break $l$block;
3863
4226
  }
@@ -3872,7 +4235,7 @@
3872
4235
  var _iterator__ex2g4s_0 = tmp0_0.p();
3873
4236
  while (_iterator__ex2g4s_0.s()) {
3874
4237
  var element_0 = _iterator__ex2g4s_0.t();
3875
- if (Companion_getInstance_1().u1i().match(element_0.a3k(), solution.gc_1)) {
4238
+ if (Companion_getInstance_1().u1i().match(element_0.y3l(), solution.gc_1)) {
3876
4239
  tmp$ret$3 = element_0;
3877
4240
  break $l$block_0;
3878
4241
  }
@@ -3907,7 +4270,7 @@
3907
4270
  var _iterator__ex2g4s = tmp0.p();
3908
4271
  while (_iterator__ex2g4s.s()) {
3909
4272
  var element = _iterator__ex2g4s.t();
3910
- if (Companion_getInstance_1().u1i().match(element.a3k(), solution.gc_1)) {
4273
+ if (Companion_getInstance_1().u1i().match(element.y3l(), solution.gc_1)) {
3911
4274
  tmp$ret$1 = element;
3912
4275
  break $l$block;
3913
4276
  }
@@ -3923,7 +4286,7 @@
3923
4286
  var _iterator__ex2g4s_0 = tmp0_0.p();
3924
4287
  while (_iterator__ex2g4s_0.s()) {
3925
4288
  var element_0 = _iterator__ex2g4s_0.t();
3926
- if (Companion_getInstance_1().u1i().match(element_0.a3k(), solution.fc_1)) {
4289
+ if (Companion_getInstance_1().u1i().match(element_0.y3l(), solution.fc_1)) {
3927
4290
  tmp$ret$3 = element_0;
3928
4291
  break $l$block_0;
3929
4292
  }
@@ -3932,7 +4295,7 @@
3932
4295
  }
3933
4296
  // Inline function 'kotlin.also' call
3934
4297
  var this_0 = new Support(tmp$ret$3, argument);
3935
- argument.z3j_1.m(this_0.c3k_1);
4298
+ argument.x3l_1.m(this_0.a3m_1);
3936
4299
  return this_0;
3937
4300
  };
3938
4301
  }
@@ -4034,7 +4397,7 @@
4034
4397
  }
4035
4398
  function Companion_3() {
4036
4399
  }
4037
- protoOf(Companion_3).b3k = function (term) {
4400
+ protoOf(Companion_3).z3l = function (term) {
4038
4401
  // Inline function 'kotlin.let' call
4039
4402
  var it = of$termAsList(term);
4040
4403
  return new Argument(of$argRules(it), of$argTopRule(it), of$argConclusion(it), of$argGroundings(it), of$argDefeasibleRules(it), of$argDefeasiblePremises(it), of$argLastDefeasibleRules(it), term);
@@ -4049,44 +4412,44 @@
4049
4412
  defeasiblePremises = defeasiblePremises === VOID ? emptyList() : defeasiblePremises;
4050
4413
  lastDefeasibleRules = lastDefeasibleRules === VOID ? emptyList() : lastDefeasibleRules;
4051
4414
  term = term === VOID ? null : term;
4052
- this.q3j_1 = rules;
4053
- this.r3j_1 = topRule;
4054
- this.s3j_1 = conclusion;
4055
- this.t3j_1 = groundings;
4056
- this.u3j_1 = defeasibleRules;
4057
- this.v3j_1 = defeasiblePremises;
4058
- this.w3j_1 = lastDefeasibleRules;
4059
- this.x3j_1 = term;
4060
- this.y3j_1 = '';
4415
+ this.o3l_1 = rules;
4416
+ this.p3l_1 = topRule;
4417
+ this.q3l_1 = conclusion;
4418
+ this.r3l_1 = groundings;
4419
+ this.s3l_1 = defeasibleRules;
4420
+ this.t3l_1 = defeasiblePremises;
4421
+ this.u3l_1 = lastDefeasibleRules;
4422
+ this.v3l_1 = term;
4423
+ this.w3l_1 = '';
4061
4424
  var tmp = this;
4062
4425
  // Inline function 'kotlin.collections.mutableListOf' call
4063
- tmp.z3j_1 = ArrayList_init_$Create$_0();
4426
+ tmp.x3l_1 = ArrayList_init_$Create$_0();
4064
4427
  }
4065
4428
  protoOf(Argument).hashCode = function () {
4066
4429
  // Inline function 'kotlin.hashCode' call
4067
- var tmp0_safe_receiver = this.x3j_1;
4430
+ var tmp0_safe_receiver = this.v3l_1;
4068
4431
  var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
4069
4432
  return tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
4070
4433
  };
4071
- protoOf(Argument).e3k = function () {
4072
- var tmp = this.y3j_1 + ' : ';
4434
+ protoOf(Argument).c3m = function () {
4435
+ var tmp = this.w3l_1 + ' : ';
4073
4436
  var tmp_0;
4074
- if (this.r3j_1 === 'none') {
4075
- var tmp0_elvis_lhs = firstOrNull_0(this.q3j_1);
4437
+ if (this.p3l_1 === 'none') {
4438
+ var tmp0_elvis_lhs = firstOrNull_0(this.o3l_1);
4076
4439
  tmp_0 = tmp0_elvis_lhs == null ? '' : tmp0_elvis_lhs;
4077
4440
  } else {
4078
4441
  // Inline function 'kotlin.collections.map' call
4079
- var this_0 = this.z3j_1;
4442
+ var this_0 = this.x3l_1;
4080
4443
  // Inline function 'kotlin.collections.mapTo' call
4081
4444
  var destination = ArrayList_init_$Create$(collectionSizeOrDefault(this_0, 10));
4082
4445
  var _iterator__ex2g4s = this_0.p();
4083
4446
  while (_iterator__ex2g4s.s()) {
4084
4447
  var item = _iterator__ex2g4s.t();
4085
- var tmp$ret$0 = item.y3j_1;
4448
+ var tmp$ret$0 = item.w3l_1;
4086
4449
  destination.m(tmp$ret$0);
4087
4450
  }
4088
4451
  // Inline function 'kotlin.collections.reduce' call
4089
- var iterator = plus_1(destination, this.r3j_1).p();
4452
+ var iterator = plus_1(destination, this.p3l_1).p();
4090
4453
  if (!iterator.s())
4091
4454
  throw UnsupportedOperationException_init_$Create$("Empty collection can't be reduced.");
4092
4455
  var accumulator = iterator.t();
@@ -4095,35 +4458,35 @@
4095
4458
  }
4096
4459
  tmp_0 = accumulator;
4097
4460
  }
4098
- return tmp + tmp_0 + ' : ' + this.s3j_1;
4461
+ return tmp + tmp_0 + ' : ' + this.q3l_1;
4099
4462
  };
4100
- protoOf(Argument).a3k = function () {
4101
- var tmp0_elvis_lhs = this.x3j_1;
4102
- return tmp0_elvis_lhs == null ? parseStruct(Companion_getInstance_7(), '[' + toString(this.q3j_1) + ', ' + this.r3j_1 + ', [' + this.s3j_1 + '], ' + toString(this.t3j_1) + ', [' + toString(this.w3j_1) + ', ' + toString(this.u3j_1) + ', ' + toString(this.v3j_1) + ']]') : tmp0_elvis_lhs;
4463
+ protoOf(Argument).y3l = function () {
4464
+ var tmp0_elvis_lhs = this.v3l_1;
4465
+ return tmp0_elvis_lhs == null ? parseStruct(Companion_getInstance_7(), '[' + toString(this.o3l_1) + ', ' + this.p3l_1 + ', [' + this.q3l_1 + '], ' + toString(this.r3l_1) + ', [' + toString(this.u3l_1) + ', ' + toString(this.s3l_1) + ', ' + toString(this.t3l_1) + ']]') : tmp0_elvis_lhs;
4103
4466
  };
4104
4467
  protoOf(Argument).toString = function () {
4105
- return 'argument(' + this.a3k().toString() + ')';
4468
+ return 'argument(' + this.y3l().toString() + ')';
4106
4469
  };
4107
4470
  protoOf(Argument).equals = function (other) {
4108
4471
  if (this === other)
4109
4472
  return true;
4110
4473
  if (!(other instanceof Argument))
4111
4474
  return false;
4112
- if (!equals(this.q3j_1, other.q3j_1))
4475
+ if (!equals(this.o3l_1, other.o3l_1))
4113
4476
  return false;
4114
- if (!(this.r3j_1 === other.r3j_1))
4477
+ if (!(this.p3l_1 === other.p3l_1))
4115
4478
  return false;
4116
- if (!(this.s3j_1 === other.s3j_1))
4479
+ if (!(this.q3l_1 === other.q3l_1))
4117
4480
  return false;
4118
- if (!equals(this.t3j_1, other.t3j_1))
4481
+ if (!equals(this.r3l_1, other.r3l_1))
4119
4482
  return false;
4120
- if (!equals(this.u3j_1, other.u3j_1))
4483
+ if (!equals(this.s3l_1, other.s3l_1))
4121
4484
  return false;
4122
- if (!equals(this.v3j_1, other.v3j_1))
4485
+ if (!equals(this.t3l_1, other.t3l_1))
4123
4486
  return false;
4124
- if (!equals(this.w3j_1, other.w3j_1))
4487
+ if (!equals(this.u3l_1, other.u3l_1))
4125
4488
  return false;
4126
- if (!equals(this.x3j_1, other.x3j_1))
4489
+ if (!equals(this.v3l_1, other.v3l_1))
4127
4490
  return false;
4128
4491
  return true;
4129
4492
  };
@@ -4133,23 +4496,23 @@
4133
4496
  function Attack(attacker, target, type, on) {
4134
4497
  type = type === VOID ? null : type;
4135
4498
  on = on === VOID ? null : on;
4136
- this.f3k_1 = attacker;
4137
- this.g3k_1 = target;
4138
- this.h3k_1 = type;
4139
- this.i3k_1 = on;
4499
+ this.d3m_1 = attacker;
4500
+ this.e3m_1 = target;
4501
+ this.f3m_1 = type;
4502
+ this.g3m_1 = on;
4140
4503
  }
4141
4504
  protoOf(Attack).toString = function () {
4142
- var tmp = toString(toString$parse(this.h3k_1));
4143
- var tmp_0 = this.f3k_1.a3k().toString();
4144
- var tmp_1 = this.g3k_1.a3k().toString();
4145
- var tmp0_safe_receiver = this.i3k_1;
4146
- return 'attack(' + tmp + ', ' + tmp_0 + ', ' + tmp_1 + ', ' + toString(toString$parse(tmp0_safe_receiver == null ? null : tmp0_safe_receiver.a3k())) + ')';
4505
+ var tmp = toString(toString$parse(this.f3m_1));
4506
+ var tmp_0 = this.d3m_1.y3l().toString();
4507
+ var tmp_1 = this.e3m_1.y3l().toString();
4508
+ var tmp0_safe_receiver = this.g3m_1;
4509
+ return 'attack(' + tmp + ', ' + tmp_0 + ', ' + tmp_1 + ', ' + toString(toString$parse(tmp0_safe_receiver == null ? null : tmp0_safe_receiver.y3l())) + ')';
4147
4510
  };
4148
4511
  protoOf(Attack).hashCode = function () {
4149
- var result = this.f3k_1.hashCode();
4150
- result = imul(result, 31) + this.g3k_1.hashCode() | 0;
4151
- result = imul(result, 31) + (this.h3k_1 == null ? 0 : getStringHashCode(this.h3k_1)) | 0;
4152
- result = imul(result, 31) + (this.i3k_1 == null ? 0 : this.i3k_1.hashCode()) | 0;
4512
+ var result = this.d3m_1.hashCode();
4513
+ result = imul(result, 31) + this.e3m_1.hashCode() | 0;
4514
+ result = imul(result, 31) + (this.f3m_1 == null ? 0 : getStringHashCode(this.f3m_1)) | 0;
4515
+ result = imul(result, 31) + (this.g3m_1 == null ? 0 : this.g3m_1.hashCode()) | 0;
4153
4516
  return result;
4154
4517
  };
4155
4518
  protoOf(Attack).equals = function (other) {
@@ -4157,31 +4520,31 @@
4157
4520
  return true;
4158
4521
  if (!(other instanceof Attack))
4159
4522
  return false;
4160
- if (!this.f3k_1.equals(other.f3k_1))
4523
+ if (!this.d3m_1.equals(other.d3m_1))
4161
4524
  return false;
4162
- if (!this.g3k_1.equals(other.g3k_1))
4525
+ if (!this.e3m_1.equals(other.e3m_1))
4163
4526
  return false;
4164
- if (!(this.h3k_1 == other.h3k_1))
4527
+ if (!(this.f3m_1 == other.f3m_1))
4165
4528
  return false;
4166
- if (!equals(this.i3k_1, other.i3k_1))
4529
+ if (!equals(this.g3m_1, other.g3m_1))
4167
4530
  return false;
4168
4531
  return true;
4169
4532
  };
4170
4533
  function Companion_4() {
4171
4534
  }
4172
- protoOf(Companion_4).p3j = function (labellings, attacks, supports) {
4535
+ protoOf(Companion_4).n3l = function (labellings, attacks, supports) {
4173
4536
  // Inline function 'kotlin.collections.map' call
4174
4537
  // Inline function 'kotlin.collections.mapTo' call
4175
4538
  var destination = ArrayList_init_$Create$(collectionSizeOrDefault(labellings, 10));
4176
4539
  var _iterator__ex2g4s = labellings.p();
4177
4540
  while (_iterator__ex2g4s.s()) {
4178
4541
  var item = _iterator__ex2g4s.t();
4179
- var tmp$ret$0 = item.j3k_1;
4542
+ var tmp$ret$0 = item.h3m_1;
4180
4543
  destination.m(tmp$ret$0);
4181
4544
  }
4182
4545
  // Inline function 'kotlin.also' call
4183
4546
  var this_0 = new Graph(destination, attacks, supports);
4184
- this_0.o3k_1 = labellings;
4547
+ this_0.m3m_1 = labellings;
4185
4548
  return this_0;
4186
4549
  };
4187
4550
  var Companion_instance_12;
@@ -4189,18 +4552,18 @@
4189
4552
  return Companion_instance_12;
4190
4553
  }
4191
4554
  function Graph(arguments_0, attacks, supports) {
4192
- this.l3k_1 = arguments_0;
4193
- this.m3k_1 = attacks;
4194
- this.n3k_1 = supports;
4195
- this.o3k_1 = emptyList();
4555
+ this.j3m_1 = arguments_0;
4556
+ this.k3m_1 = attacks;
4557
+ this.l3m_1 = supports;
4558
+ this.m3m_1 = emptyList();
4196
4559
  }
4197
4560
  protoOf(Graph).toString = function () {
4198
- return 'Graph(arguments=' + toString(this.l3k_1) + ', attacks=' + toString(this.m3k_1) + ', supports=' + toString(this.n3k_1) + ')';
4561
+ return 'Graph(arguments=' + toString(this.j3m_1) + ', attacks=' + toString(this.k3m_1) + ', supports=' + toString(this.l3m_1) + ')';
4199
4562
  };
4200
4563
  protoOf(Graph).hashCode = function () {
4201
- var result = hashCode(this.l3k_1);
4202
- result = imul(result, 31) + hashCode(this.m3k_1) | 0;
4203
- result = imul(result, 31) + hashCode(this.n3k_1) | 0;
4564
+ var result = hashCode(this.j3m_1);
4565
+ result = imul(result, 31) + hashCode(this.k3m_1) | 0;
4566
+ result = imul(result, 31) + hashCode(this.l3m_1) | 0;
4204
4567
  return result;
4205
4568
  };
4206
4569
  protoOf(Graph).equals = function (other) {
@@ -4208,24 +4571,24 @@
4208
4571
  return true;
4209
4572
  if (!(other instanceof Graph))
4210
4573
  return false;
4211
- if (!equals(this.l3k_1, other.l3k_1))
4574
+ if (!equals(this.j3m_1, other.j3m_1))
4212
4575
  return false;
4213
- if (!equals(this.m3k_1, other.m3k_1))
4576
+ if (!equals(this.k3m_1, other.k3m_1))
4214
4577
  return false;
4215
- if (!equals(this.n3k_1, other.n3k_1))
4578
+ if (!equals(this.l3m_1, other.l3m_1))
4216
4579
  return false;
4217
4580
  return true;
4218
4581
  };
4219
4582
  function LabelledArgument(argument, label) {
4220
- this.j3k_1 = argument;
4221
- this.k3k_1 = label;
4583
+ this.h3m_1 = argument;
4584
+ this.i3m_1 = label;
4222
4585
  }
4223
4586
  protoOf(LabelledArgument).toString = function () {
4224
- return this.k3k_1 + '(' + this.j3k_1.a3k().toString() + ')';
4587
+ return this.i3m_1 + '(' + this.h3m_1.y3l().toString() + ')';
4225
4588
  };
4226
4589
  protoOf(LabelledArgument).hashCode = function () {
4227
- var result = this.j3k_1.hashCode();
4228
- result = imul(result, 31) + getStringHashCode(this.k3k_1) | 0;
4590
+ var result = this.h3m_1.hashCode();
4591
+ result = imul(result, 31) + getStringHashCode(this.i3m_1) | 0;
4229
4592
  return result;
4230
4593
  };
4231
4594
  protoOf(LabelledArgument).equals = function (other) {
@@ -4233,22 +4596,22 @@
4233
4596
  return true;
4234
4597
  if (!(other instanceof LabelledArgument))
4235
4598
  return false;
4236
- if (!this.j3k_1.equals(other.j3k_1))
4599
+ if (!this.h3m_1.equals(other.h3m_1))
4237
4600
  return false;
4238
- if (!(this.k3k_1 === other.k3k_1))
4601
+ if (!(this.i3m_1 === other.i3m_1))
4239
4602
  return false;
4240
4603
  return true;
4241
4604
  };
4242
4605
  function Support(supporter, supported) {
4243
- this.c3k_1 = supporter;
4244
- this.d3k_1 = supported;
4606
+ this.a3m_1 = supporter;
4607
+ this.b3m_1 = supported;
4245
4608
  }
4246
4609
  protoOf(Support).toString = function () {
4247
- return 'support(' + this.c3k_1.a3k().toString() + ', ' + this.d3k_1.a3k().toString() + ')';
4610
+ return 'support(' + this.a3m_1.y3l().toString() + ', ' + this.b3m_1.y3l().toString() + ')';
4248
4611
  };
4249
4612
  protoOf(Support).hashCode = function () {
4250
- var result = this.c3k_1.hashCode();
4251
- result = imul(result, 31) + this.d3k_1.hashCode() | 0;
4613
+ var result = this.a3m_1.hashCode();
4614
+ result = imul(result, 31) + this.b3m_1.hashCode() | 0;
4252
4615
  return result;
4253
4616
  };
4254
4617
  protoOf(Support).equals = function (other) {
@@ -4256,9 +4619,9 @@
4256
4619
  return true;
4257
4620
  if (!(other instanceof Support))
4258
4621
  return false;
4259
- if (!this.c3k_1.equals(other.c3k_1))
4622
+ if (!this.a3m_1.equals(other.a3m_1))
4260
4623
  return false;
4261
- if (!this.d3k_1.equals(other.d3k_1))
4624
+ if (!this.b3m_1.equals(other.b3m_1))
4262
4625
  return false;
4263
4626
  return true;
4264
4627
  };
@@ -4267,7 +4630,7 @@
4267
4630
  EngineInterfaceBase.call(this);
4268
4631
  }
4269
4632
  protoOf(EngineInterface).b3a = function () {
4270
- return ArgumentationEngineInterface_instance.s3k_1;
4633
+ return ArgumentationEngineInterface_instance.q3m_1;
4271
4634
  };
4272
4635
  var EngineInterface_instance;
4273
4636
  function EngineInterface_getInstance() {
@@ -4280,7 +4643,7 @@
4280
4643
  AbstractModeBase.call(this);
4281
4644
  }
4282
4645
  protoOf(AbstractMode).b3a = function () {
4283
- return AbstractMode_instance_0.w3k_1;
4646
+ return AbstractMode_instance_0.u3m_1;
4284
4647
  };
4285
4648
  var AbstractMode_instance;
4286
4649
  function AbstractMode_getInstance() {
@@ -4293,7 +4656,7 @@
4293
4656
  ArgumentationGraphBuilderBase.call(this);
4294
4657
  }
4295
4658
  protoOf(ArgumentationGraphBuilder).b3a = function () {
4296
- return ArgumentationGraph_instance.a3l_1;
4659
+ return ArgumentationGraph_instance.y3m_1;
4297
4660
  };
4298
4661
  var ArgumentationGraphBuilder_instance;
4299
4662
  function ArgumentationGraphBuilder_getInstance() {
@@ -4306,7 +4669,7 @@
4306
4669
  AttackRestrictionHandlerBase.call(this);
4307
4670
  }
4308
4671
  protoOf(AttackRestrictionHandler).b3a = function () {
4309
- return AttackRestriction_instance.e3l_1;
4672
+ return AttackRestriction_instance.c3n_1;
4310
4673
  };
4311
4674
  var AttackRestrictionHandler_instance;
4312
4675
  function AttackRestrictionHandler_getInstance() {
@@ -4319,7 +4682,7 @@
4319
4682
  BpMetaGraphHandlerBase.call(this);
4320
4683
  }
4321
4684
  protoOf(BpMetaGraphHandler).b3a = function () {
4322
- return Bp_instance.i3l_1;
4685
+ return Bp_instance.g3n_1;
4323
4686
  };
4324
4687
  var BpMetaGraphHandler_instance;
4325
4688
  function BpMetaGraphHandler_getInstance() {
@@ -4332,7 +4695,7 @@
4332
4695
  DefeasiblePreferencesHandlerBase.call(this);
4333
4696
  }
4334
4697
  protoOf(DefeasiblePreferencesHandler).b3a = function () {
4335
- return DefPreferences_instance.m3l_1;
4698
+ return DefPreferences_instance.k3n_1;
4336
4699
  };
4337
4700
  var DefeasiblePreferencesHandler_instance;
4338
4701
  function DefeasiblePreferencesHandler_getInstance() {
@@ -4345,7 +4708,7 @@
4345
4708
  GenericDefeasiblePreferencesHandlerBase.call(this);
4346
4709
  }
4347
4710
  protoOf(GenericDefeasiblePreferencesHandler).b3a = function () {
4348
- return GenericDefPreferences_instance.q3l_1;
4711
+ return GenericDefPreferences_instance.o3n_1;
4349
4712
  };
4350
4713
  var GenericDefeasiblePreferencesHandler_instance;
4351
4714
  function GenericDefeasiblePreferencesHandler_getInstance() {
@@ -4358,7 +4721,7 @@
4358
4721
  StrictPreferencesHandlerBase.call(this);
4359
4722
  }
4360
4723
  protoOf(StrictPreferencesHandler).b3a = function () {
4361
- return Preferences_instance.u3l_1;
4724
+ return Preferences_instance.s3n_1;
4362
4725
  };
4363
4726
  var StrictPreferencesHandler_instance;
4364
4727
  function StrictPreferencesHandler_getInstance() {
@@ -4371,7 +4734,7 @@
4371
4734
  BpCompleteLabellerBase.call(this);
4372
4735
  }
4373
4736
  protoOf(BpCompleteLabeller).b3a = function () {
4374
- return BpGroundedComplete_instance.y3l_1;
4737
+ return BpGroundedComplete_instance.w3n_1;
4375
4738
  };
4376
4739
  var BpCompleteLabeller_instance;
4377
4740
  function BpCompleteLabeller_getInstance() {
@@ -4384,7 +4747,7 @@
4384
4747
  BpLabellerBase.call(this);
4385
4748
  }
4386
4749
  protoOf(BpLabeller).b3a = function () {
4387
- return BpGrounded_instance.c3m_1;
4750
+ return BpGrounded_instance.a3o_1;
4388
4751
  };
4389
4752
  var BpLabeller_instance;
4390
4753
  function BpLabeller_getInstance() {
@@ -4397,7 +4760,7 @@
4397
4760
  BpPartialLabellerBase.call(this);
4398
4761
  }
4399
4762
  protoOf(BpPartialLabeller).b3a = function () {
4400
- return BpGroundedPartial_instance.g3m_1;
4763
+ return BpGroundedPartial_instance.e3o_1;
4401
4764
  };
4402
4765
  var BpPartialLabeller_instance;
4403
4766
  function BpPartialLabeller_getInstance() {
@@ -4410,7 +4773,7 @@
4410
4773
  CompleteLabellerBase.call(this);
4411
4774
  }
4412
4775
  protoOf(CompleteLabeller).b3a = function () {
4413
- return Complete_instance.k3m_1;
4776
+ return Complete_instance.i3o_1;
4414
4777
  };
4415
4778
  var CompleteLabeller_instance;
4416
4779
  function CompleteLabeller_getInstance() {
@@ -4423,7 +4786,7 @@
4423
4786
  GroundedLabellerBase.call(this);
4424
4787
  }
4425
4788
  protoOf(GroundedLabeller).b3a = function () {
4426
- return Grounded_instance.o3m_1;
4789
+ return Grounded_instance.m3o_1;
4427
4790
  };
4428
4791
  var GroundedLabeller_instance;
4429
4792
  function GroundedLabeller_getInstance() {
@@ -4436,7 +4799,7 @@
4436
4799
  GroundedLabellerOptimizedBase.call(this);
4437
4800
  }
4438
4801
  protoOf(GroundedLabellerOptimized).b3a = function () {
4439
- return GroundedOptimized_instance.s3m_1;
4802
+ return GroundedOptimized_instance.q3o_1;
4440
4803
  };
4441
4804
  var GroundedLabellerOptimized_instance;
4442
4805
  function GroundedLabellerOptimized_getInstance() {
@@ -4449,7 +4812,7 @@
4449
4812
  StatementLabellerBase.call(this);
4450
4813
  }
4451
4814
  protoOf(StatementLabeller).b3a = function () {
4452
- return StatementLabelling_instance.w3m_1;
4815
+ return StatementLabelling_instance.u3o_1;
4453
4816
  };
4454
4817
  var StatementLabeller_instance;
4455
4818
  function StatementLabeller_getInstance() {
@@ -4462,7 +4825,7 @@
4462
4825
  RuleParserBase.call(this);
4463
4826
  }
4464
4827
  protoOf(RuleParser).b3a = function () {
4465
- return RuleTranslator_instance.a3n_1;
4828
+ return RuleTranslator_instance.y3o_1;
4466
4829
  };
4467
4830
  var RuleParser_instance;
4468
4831
  function RuleParser_getInstance() {
@@ -4471,147 +4834,147 @@
4471
4834
  return RuleParser_instance;
4472
4835
  }
4473
4836
  function AbstractMode_0() {
4474
- this.w3k_1 = 'computeGlobalAcceptance :-\n buildGraph,\n modifyGraph,\n buildArgumentLabelling,\n buildStatementLabelling.\ncomputeGlobalAcceptance([Arguments, Attacks, Supports], [ArgsIn, ArgsOut, ArgsUnd], [StatIn, StatOut, StatUnd]) :-\n computeGlobalAcceptance,\n utils::recoverGraph(Arguments, Attacks, Supports),\n utils::recoverArgumentLabelling(ArgsIn, ArgsOut, ArgsUnd),\n utils::recoverStatementLabelling(StatIn, StatOut, StatUnd).\nbuildGraph :-\n graphBuildMode(X),\n X:::buildArgumentationGraph.\nmodifyGraph :-\n findall(X, graphExtension(X), Ext),\n modifyGraph(Ext).\nmodifyGraph([]).\nmodifyGraph([X|Ext]) :-\n modifyGraph(Ext),\n X:::modifyArgumentationGraph.\nbuildArgumentLabelling :-\n argumentLabellingMode(X),\n X:::argumentLabelling.\nbuildStatementLabelling :-\n statementLabellingMode(X),\n X:::statementLabelling.';
4837
+ this.u3m_1 = 'computeGlobalAcceptance :-\n buildGraph,\n modifyGraph,\n buildArgumentLabelling,\n buildStatementLabelling.\ncomputeGlobalAcceptance([Arguments, Attacks, Supports], [ArgsIn, ArgsOut, ArgsUnd], [StatIn, StatOut, StatUnd]) :-\n computeGlobalAcceptance,\n utils::recoverGraph(Arguments, Attacks, Supports),\n utils::recoverArgumentLabelling(ArgsIn, ArgsOut, ArgsUnd),\n utils::recoverStatementLabelling(StatIn, StatOut, StatUnd).\nbuildGraph :-\n graphBuildMode(X),\n X:::buildArgumentationGraph.\nmodifyGraph :-\n findall(X, graphExtension(X), Ext),\n modifyGraph(Ext).\nmodifyGraph([]).\nmodifyGraph([X|Ext]) :-\n modifyGraph(Ext),\n X:::modifyArgumentationGraph.\nbuildArgumentLabelling :-\n argumentLabellingMode(X),\n X:::argumentLabelling.\nbuildStatementLabelling :-\n statementLabellingMode(X),\n X:::statementLabelling.\nsolve(Arguments, Attacks, I, O, U) :-\n solve(Arguments, Attacks),\n utils::recoverArgumentLabellingAbstract(I, O, U).\nsolve(Arguments, Attacks) :-\n context_reset,\n findall(_, (\n member(A, Arguments),\n standard_af::saveArgument(graph, [A], [[A], A, [A], [], [[], [], []]])\n ), _),\n findall(_, (\n member((A, B), Attacks),\n AA = [[A], A, [A], [], [[], [], []]],\n BB = [[B], B, [B], [], [[], [], []]],\n standard_af::saveAttack(abstract, AA, BB, BB)\n ), _),\n buildArgumentLabelling.';
4475
4838
  }
4476
4839
  var AbstractMode_instance_0;
4477
4840
  function AbstractMode_getInstance_0() {
4478
4841
  return AbstractMode_instance_0;
4479
4842
  }
4480
4843
  function ArgumentationEngineInterface() {
4481
- this.s3k_1 = 'argTuProlog.\nsolve :- buildLabelSetsSilent.\nsolve(Query) :- answerQuery(Query).\nsolve(Query, Res) :- answerQuery(Query, Res).\nbuildLabelSets([StatIn, StatOut, StatUnd], [ArgsIn, ArgsOut, ArgsUnd]) :-\n context_reset,\n parser:::convertAllRules(_),\n abstract::computeGlobalAcceptance(_, [ArgsIn, ArgsOut, ArgsUnd], [StatIn, StatOut, StatUnd]).\nbuildLabelSets(StatIn, StatOut, StatUnd) :-\n buildLabelSets([StatIn, StatOut, StatUnd], _).\nbuildLabelSets :-\n context_reset,\n parser:::convertAllRules(ArgRules),\n abstract::computeGlobalAcceptance([Arguments, Attacks, Supports], [ArgsIn, ArgsOut, ArgsUnd], [StatIn, StatOut, StatUnd]),\n debug::printArgumentationGraph(Arguments, Attacks, Supports),\n debug::printArgumentLabelling([ArgsIn, ArgsOut, ArgsUnd]),\n debug::printStatementLabelling([StatIn, StatOut, StatUnd]).\nanswerQuery(Goal, Yes, No, Und) :-\n context_reset,\n parser:::convertAllRules(_),\n structured:::computeStatementAcceptance(Goal, Yes, No, Und).\nanswerQuery(Goal, Res) :-\n context_reset,\n parser:::convertAllRules(_),\n structured:::computeStatementAcceptance(Goal, Res).\nanswerQuery(Goal) :-\n context_reset,\n parser:::convertAllRules(_),\n structured:::computeStatementAcceptance(Goal).\nbuildLabelSetsSilent :-\n context_reset,\n parser:::convertAllRules(ArgRules),\n abstract::computeGlobalAcceptance.';
4844
+ this.q3m_1 = 'argTuProlog.\nsolve :- buildLabelSetsSilent.\nsolve(Query) :- answerQuery(Query).\nsolve(Query, Res) :- answerQuery(Query, Res).\nbuildLabelSets([StatIn, StatOut, StatUnd], [ArgsIn, ArgsOut, ArgsUnd]) :-\n context_reset,\n parser:::convertAllRules(_),\n abstract::computeGlobalAcceptance(_, [ArgsIn, ArgsOut, ArgsUnd], [StatIn, StatOut, StatUnd]).\nbuildLabelSets(StatIn, StatOut, StatUnd) :-\n buildLabelSets([StatIn, StatOut, StatUnd], _).\nbuildLabelSets :-\n context_reset,\n parser:::convertAllRules(ArgRules),\n abstract::computeGlobalAcceptance([Arguments, Attacks, Supports], [ArgsIn, ArgsOut, ArgsUnd], [StatIn, StatOut, StatUnd]),\n debug::printArgumentationGraph(Arguments, Attacks, Supports),\n debug::printArgumentLabelling([ArgsIn, ArgsOut, ArgsUnd]),\n debug::printStatementLabelling([StatIn, StatOut, StatUnd]).\nanswerQuery(Goal, Yes, No, Und) :-\n context_reset,\n parser:::convertAllRules(_),\n structured:::computeStatementAcceptance(Goal, Yes, No, Und).\nanswerQuery(Goal, Res) :-\n context_reset,\n parser:::convertAllRules(_),\n structured:::computeStatementAcceptance(Goal, Res).\nanswerQuery(Goal) :-\n context_reset,\n parser:::convertAllRules(_),\n structured:::computeStatementAcceptance(Goal).\nbuildLabelSetsSilent :-\n context_reset,\n parser:::convertAllRules(ArgRules),\n abstract::computeGlobalAcceptance.';
4482
4845
  }
4483
4846
  var ArgumentationEngineInterface_instance;
4484
4847
  function ArgumentationEngineInterface_getInstance() {
4485
4848
  return ArgumentationEngineInterface_instance;
4486
4849
  }
4487
4850
  function ArgumentationGraph() {
4488
- this.a3l_1 = 'buildArgumentationGraph :-\n buildArguments,\n findall(_, buildAdditionalArgument, _),\n buildAttacks.\nbuildAdditionalArgument :-\n metaConflicts,\n conf_arg(A, CArg),\n context_check(clause(conc(A), argument([R, T, C, B, I]))),\n \\+ filter_meta([R, T, C, B, I]),\n saveArgument(a, A, [[mc|R], T, C, B, I]),\n saveSupport(CArg, [[mc|R], T, C, B, I]),\n cloneSupport([R, T, C, B, I], [[mc|R], T, C, B, I]),\n fail.\nbuildAdditionalArgument.\ncloneSupport(Original, New) :-\n findall(_, (\n context_check(support(S, Original)),\n saveSupport(S, New)\n ), _).\nconf_arg([A], Arg) :-\n context_check(clause(conc([conflict(A, _, _)]), argument(Arg))).\nconf_arg([A], Arg) :-\n context_check(clause(conc([conflict(A, _)]), argument(Arg))).\nfilter_meta([Id, _, _, _, _]) :- metaConflicts, member(mc, Id).\nfilter_meta(_) :- \\+ metaConflicts.\nbuildArguments :-\n\tbuildArgumentsFromPremises,\n\tbuildArgumentsFromEmptyRules,\n\tfindall([RuleID, RuleBody, RuleHead], (\n\t parser::classic_rule(RuleID, RuleBody, RuleHead),\n\t \\+ emptyRule([RuleID, RuleBody, RuleHead])\n ), Rules),\n findall(X, context_check(newConc(a, [X])), N),\n\tbuildArgumentsFromRules(N, b, Rules, Rules, n).\nbuildArgumentsFromPremises :-\n findall(\n _,\n (\n parser::classic_rule(PremiseID, Premise),\n checkStrict(PremiseID, DefPrem),\n saveArgument(a, Premise, [[PremiseID], none, Premise, [], [[], [], DefPrem]])\n ),\n _\n ).\nbuildArgumentsFromEmptyRules :-\n findall(\n _,\n (\n emptyRule([RuleID, RulePrem, RuleHead]),\n checkStrict(RuleID, DefRule),\n saveArgument(a, RuleHead, [[RuleID], RuleID, RuleHead, RulePrem, [DefRule, DefRule, []]])\n ),\n _\n ).\nemptyRule([RuleID, Body, RuleHead]) :-\n parser::classic_rule(RuleID, Body, RuleHead),\n \\+ (member(X, Body), X \\= ~(_), X \\= prolog(_)),\n ruleBodyIsSupported(RuleID, RuleHead, Body, Body, [[], [], [], []], _).\ncheckStrict(Id, []) :- parser::check_strict(Id), !.\ncheckStrict(Id, [Id]).\nbuildArgumentsFromRules(_, _, Rules, [], n) :- !.\nbuildArgumentsFromRules(_, Tn, Rules, [], y) :- !, clean(Tn, Rules).\nbuildArgumentsFromRules(N, Tn, Rules, [[Id, Body, Conc]|T], _) :-\n utils::contains_any(Body, N),\n findall(true, buildArgumentsFromRule(Tn, [Id, Body, Conc]), R),\n R \\== [],\n buildArgumentsFromRules(N, Tn, Rules, T, y), !.\nbuildArgumentsFromRules(N, Tn, Rules, [_|T], X) :-\n buildArgumentsFromRules(N, Tn, Rules, T, X).\nbuildArgumentsFromRule(Tn, [RuleID, RuleBody, RuleHead]) :-\n\truleBodyIsSupported(RuleID, RuleHead, RuleBody, RuleBody, [[], [], [], []], Argument),\n\tsaveArgument(Tn, RuleHead, Argument).\nclean(Tn, Rules) :-\n invert(Tn, Tx),\n context_retract(newConc(Tx, _)),\n findall(X, context_check(newConc(Tn, [X])), N),\n buildArgumentsFromRules(N, Tx, Rules, Rules, n).\ninvert(a, b).\ninvert(b, a).\ndefRules(Id, Def, Def) :- parser::check_strict(Id), !.\ndefRules(Id, Def, [Id|Def]).\nlastDefRules(Id, LDef, LDef) :- parser::check_strict(Id), !.\nlastDefRules(Id, LDef, [Id]) :- Id \\== none, \\+ parser::check_strict(Id).\nargumentInfo(RuleId, LDef, Def, Prem, [FLDef, FDef, FPrem]) :-\n utils::sortDistinct(Prem, FPrem),\n defRules(RuleId, Def, NDef),\n utils::sortDistinct(NDef, FDef),\n lastDefRules(RuleId, LDef, NLDef),\n utils::sortDistinct(NLDef, FLDef).\nruleBodyIsSupported(RuleID, RuleHead, RuleBody, [], [TAll, TLDef, TDef, TPrem], Argument) :-\n utils::appendLists(TAll, All),\n \\+ utils::contains(RuleID, All),\n utils::appendLists(TLDef, LDef),\n utils::appendLists(TDef, Def),\n utils::appendLists(TPrem, Prem),\n argumentInfo(RuleID, LDef, Def, Prem, Info),\n utils::sort([RuleID|All], Rules),\n Argument = [Rules, RuleID, RuleHead, RuleBody, Info],\n \\+ context_check(clause(conc(RuleHead), argument(Argument))).\nruleBodyIsSupported(RuleID, RuleHead, RuleBody, [~(_)|Others], Info, Argument) :-\n\truleBodyIsSupported(RuleID, RuleHead, RuleBody, Others, Info, Argument).\nruleBodyIsSupported(RuleID, RuleHead, RuleBody, [prolog(Check)|Others], Info, Argument) :-\n\t(callable(Check) -> call(Check); Check),\n\truleBodyIsSupported(RuleID, RuleHead, RuleBody, Others, Info, Argument).\nruleBodyIsSupported(RuleId, RuleHead, RuleBody, [Statement|Others], [All, LDef, Def, Prem], Argument) :-\n context_check(clause(conc([Statement]), argument([ArgumentID, RuleID, [Statement], Body, [NLDef, NDef, NPrem]]))),\n\truleBodyIsSupported(RuleId, RuleHead, RuleBody, Others, [[ArgumentID|All], [NLDef|LDef], [NDef|Def], [NPrem|Prem]], Argument),\n\tsaveSupport([ArgumentID, RuleID, [Statement], Body, [NLDef, NDef, NPrem]], Argument).\nbuildAttacks :-\n\tfindall(_, buildDirectAttack, _).\nbuildDirectAttack :-\n context_check(argument(A)),\n attack::findPossibleAttackers(A, BB),\n\tcontext_check(clause(conc(BB), argument(B))),\n\tfilter_meta(B),\n\tA \\== B,\n attack::attacks(T, B, A),\n saveAttack(T, B, A, A),\n findall(_, (\n expanded_support(A, C),\n saveAttack(T, B, C, A)\n ),_),\n\tfail.\nbuildDirectAttack.\nexpanded_support(A, B) :-\n context_check(support(A, B)).\nexpanded_support(A, C) :-\n context_check(support(A, B)),\n expanded_support(B, C).\nsaveArgument(T, Conclusion, Argument) :-\n \\+ context_check(clause(conc(Conclusion), argument(Argument))),\n context_assert(newConc(T, Conclusion)),\n utils::hash(argument(Argument), Id),\n context_assert(argument(Argument)),\n context_assert(conc(Conclusion) :- argument(Argument)),\n context_assert(arg(Id) :- argument(Argument)).\nsaveAttack(T, A, C, D) :-\n \\+ context_check(attack(T, A, C, D)),\n context_assert(attack(T, A, C, D)),\n utils::hash(argument(A), IdA),\n utils::hash(argument(C), IdC),\n context_assert(att(IdA, IdC) :- attack(T, A, C, D)).\nsaveSupport(A, B) :-\n \\+ context_check(support(A, B)),\n context_assert(support(A, B)).\nremoveAttack(T, A, B, C) :-\n context_retract(attack(T, A, B, C)),\n utils::hash(argument(A), IdA),\n utils::hash(argument(B), IdB),\n context_retract(att(IdA, IdB) :- attack(T, A, B, C)).';
4851
+ this.y3m_1 = 'buildArgumentationGraph :-\n buildArguments,\n findall(_, buildAdditionalArgument, _),\n buildAttacks.\nbuildAdditionalArgument :-\n metaConflicts,\n conf_arg(A, CArg),\n context_check(clause(conc(A), argument([R, T, C, B, I]))),\n \\+ filter_meta([R, T, C, B, I]),\n saveArgument(a, A, [[mc|R], T, C, B, I]),\n saveSupport(CArg, [[mc|R], T, C, B, I]),\n cloneSupport([R, T, C, B, I], [[mc|R], T, C, B, I]),\n fail.\nbuildAdditionalArgument.\ncloneSupport(Original, New) :-\n findall(_, (\n context_check(support(S, Original)),\n saveSupport(S, New)\n ), _).\nconf_arg([A], Arg) :-\n context_check(clause(conc([conflict(A, _, _)]), argument(Arg))).\nconf_arg([A], Arg) :-\n context_check(clause(conc([conflict(A, _)]), argument(Arg))).\nfilter_meta([Id, _, _, _, _]) :- metaConflicts, member(mc, Id).\nfilter_meta(_) :- \\+ metaConflicts.\nbuildArguments :-\n\tbuildArgumentsFromPremises,\n\tbuildArgumentsFromEmptyRules,\n\tfindall([RuleID, RuleBody, RuleHead], (\n\t parser::classic_rule(RuleID, RuleBody, RuleHead),\n\t \\+ emptyRule([RuleID, RuleBody, RuleHead])\n ), Rules),\n findall(X, context_check(newConc(a, [X])), N),\n\tbuildArgumentsFromRules(N, b, Rules, Rules, n).\nbuildArgumentsFromPremises :-\n findall(\n _,\n (\n parser::classic_rule(PremiseID, Premise),\n checkStrict(PremiseID, DefPrem),\n saveArgument(a, Premise, [[PremiseID], none, Premise, [], [[], [], DefPrem]])\n ),\n _\n ).\nbuildArgumentsFromEmptyRules :-\n findall(\n _,\n (\n emptyRule([RuleID, RulePrem, RuleHead]),\n checkStrict(RuleID, DefRule),\n saveArgument(a, RuleHead, [[RuleID], RuleID, RuleHead, RulePrem, [DefRule, DefRule, []]])\n ),\n _\n ).\nemptyRule([RuleID, Body, RuleHead]) :-\n parser::classic_rule(RuleID, Body, RuleHead),\n \\+ (member(X, Body), X \\= ~(_), X \\= prolog(_)),\n ruleBodyIsSupported(RuleID, RuleHead, Body, Body, [[], [], [], []], _).\ncheckStrict(Id, []) :- parser::check_strict(Id), !.\ncheckStrict(Id, [Id]).\nbuildArgumentsFromRules(_, _, Rules, [], n) :- !.\nbuildArgumentsFromRules(_, Tn, Rules, [], y) :- !, clean(Tn, Rules).\nbuildArgumentsFromRules(N, Tn, Rules, [[Id, Body, Conc]|T], _) :-\n utils::contains_any(Body, N),\n findall(true, buildArgumentsFromRule(Tn, [Id, Body, Conc]), R),\n R \\== [],\n buildArgumentsFromRules(N, Tn, Rules, T, y), !.\nbuildArgumentsFromRules(N, Tn, Rules, [_|T], X) :-\n buildArgumentsFromRules(N, Tn, Rules, T, X).\nbuildArgumentsFromRule(Tn, [RuleID, RuleBody, RuleHead]) :-\n\truleBodyIsSupported(RuleID, RuleHead, RuleBody, RuleBody, [[], [], [], []], Argument),\n\tsaveArgument(Tn, RuleHead, Argument).\nclean(Tn, Rules) :-\n invert(Tn, Tx),\n context_retract(newConc(Tx, _)),\n findall(X, context_check(newConc(Tn, [X])), N),\n buildArgumentsFromRules(N, Tx, Rules, Rules, n).\ninvert(a, b).\ninvert(b, a).\ndefRules(Id, Def, Def) :- parser::check_strict(Id), !.\ndefRules(Id, Def, [Id|Def]).\nlastDefRules(Id, LDef, LDef) :- parser::check_strict(Id), !.\nlastDefRules(Id, LDef, [Id]) :- Id \\== none, \\+ parser::check_strict(Id).\nargumentInfo(RuleId, LDef, Def, Prem, [FLDef, FDef, FPrem]) :-\n utils::sortDistinct(Prem, FPrem),\n defRules(RuleId, Def, NDef),\n utils::sortDistinct(NDef, FDef),\n lastDefRules(RuleId, LDef, NLDef),\n utils::sortDistinct(NLDef, FLDef).\nruleBodyIsSupported(RuleID, RuleHead, RuleBody, [], [TAll, TLDef, TDef, TPrem], Argument) :-\n utils::appendLists(TAll, All),\n \\+ utils::contains(RuleID, All),\n utils::appendLists(TLDef, LDef),\n utils::appendLists(TDef, Def),\n utils::appendLists(TPrem, Prem),\n argumentInfo(RuleID, LDef, Def, Prem, Info),\n utils::sort([RuleID|All], Rules),\n Argument = [Rules, RuleID, RuleHead, RuleBody, Info],\n \\+ context_check(clause(conc(RuleHead), argument(Argument))).\nruleBodyIsSupported(RuleID, RuleHead, RuleBody, [~(_)|Others], Info, Argument) :-\n\truleBodyIsSupported(RuleID, RuleHead, RuleBody, Others, Info, Argument).\nruleBodyIsSupported(RuleID, RuleHead, RuleBody, [prolog(Check)|Others], Info, Argument) :-\n\t(callable(Check) -> call(Check); Check),\n\truleBodyIsSupported(RuleID, RuleHead, RuleBody, Others, Info, Argument).\nruleBodyIsSupported(RuleId, RuleHead, RuleBody, [Statement|Others], [All, LDef, Def, Prem], Argument) :-\n context_check(clause(conc([Statement]), argument([ArgumentID, RuleID, [Statement], Body, [NLDef, NDef, NPrem]]))),\n\truleBodyIsSupported(RuleId, RuleHead, RuleBody, Others, [[ArgumentID|All], [NLDef|LDef], [NDef|Def], [NPrem|Prem]], Argument),\n\tsaveSupport([ArgumentID, RuleID, [Statement], Body, [NLDef, NDef, NPrem]], Argument).\nbuildAttacks :-\n\tfindall(_, buildDirectAttack, _).\nbuildDirectAttack :-\n context_check(argument(A)),\n attack::findPossibleAttackers(A, BB),\n\tcontext_check(clause(conc(BB), argument(B))),\n\tfilter_meta(B),\n\tA \\== B,\n attack::attacks(T, B, A),\n saveAttack(T, B, A, A),\n buildTransitiveAttacks(T, B, A),\n\tfail.\nbuildDirectAttack.\nbuildTransitiveAttacks(T, B, A) :-\n findall(_, (\n expanded_support(A, C),\n saveAttack(T, B, C, A)\n ),_).\nexpanded_support(A, B) :-\n context_check(support(A, B)).\nexpanded_support(A, C) :-\n context_check(support(A, B)),\n expanded_support(B, C).\nsaveArgument(T, Conclusion, Argument) :-\n \\+ context_check(clause(conc(Conclusion), argument(Argument))),\n context_assert(newConc(T, Conclusion)),\n utils::hash(argument(Argument), Id),\n context_assert(argument(Argument)),\n context_assert(conc(Conclusion) :- argument(Argument)),\n context_assert(arg(Id) :- argument(Argument)).\nsaveAttack(T, A, C, D) :-\n \\+ context_check(attack(T, A, C, D)),\n context_assert(attack(T, A, C, D)),\n utils::hash(argument(A), IdA),\n utils::hash(argument(C), IdC),\n context_assert(att(IdA, IdC) :- attack(T, A, C, D)).\nsaveSupport(A, B) :-\n \\+ context_check(support(A, B)),\n context_assert(support(A, B)).\nremoveAttack(T, A, B, C) :-\n context_retract(attack(T, A, B, C)),\n utils::hash(argument(A), IdA),\n utils::hash(argument(B), IdB),\n context_retract(att(IdA, IdB) :- attack(T, A, B, C)).';
4489
4852
  }
4490
4853
  var ArgumentationGraph_instance;
4491
4854
  function ArgumentationGraph_getInstance() {
4492
4855
  return ArgumentationGraph_instance;
4493
4856
  }
4494
4857
  function AttackRelation() {
4495
- this.b3n_1 = 'attacks(rebut, A, B) :- rebuts(A, B), !.\nattacks(contrary_rebut, A, B) :- contraryRebuts(A, B), !.\nattacks(undermine, A, B) :- undermines(A, B), !.\nattacks(contrary_undermine, A, B) :- contraryUndermines(A, B), !.\nattacks(undercut, A, B) :- undercuts(A, B), !.\nexpanded_conflict(HeadA, HeadB) :-\n parser::classic_conflict(HeadA, HeadB).\nexpanded_conflict(HeadA, HeadB) :-\n parser::classic_conflict(HeadA, HeadB, Guard),\n (callable(Guard) -> call(Guard); Guard).\nrebuts([IDPremisesA, RuleA, RuleHeadA, _, _], [IDPremisesB, RuleB, RuleHeadB, _, Info]) :-\n\tRuleB \\== none,\n Info \\== [[], [], []],\n\texpanded_conflict(RuleHeadA, RuleHeadB).\ncontraryRebuts([IDPremisesA, RuleA, [RuleHeadA], _, _], [IDPremisesB, RuleB, RuleHeadB, Body, Info]) :-\n\tRuleA \\== none,\n\tRuleB \\== none,\n\tutils::contains(~(RuleHeadA), Body).\nundermines([IDPremisesA, RuleA, RuleHeadA, _, _], [[IDPremiseB], none, RuleHeadB, _, Info]) :-\n\tInfo \\== [[], [], []],\n\texpanded_conflict(RuleHeadA, RuleHeadB).\ncontraryUndermines([IDPremisesA, none, [RuleHeadA], _, _], [IDPremisesB, RuleB, RuleHeadB, Body, Info]) :-\n\tRuleB \\== none,\n\tutils::contains(~(RuleHeadA), Body).\nundercuts([_, _, [undercut(RuleB)], _, _], [_, RuleB, _, _, [[RuleB], _, _]]).\nundercuts([_, _, NegRuleB, _, _], [_, RuleB, _, _, [[RuleB], _, _]]) :-\n expanded_conflict(NegRuleB, [RuleB]).\nfindPossibleAttackers([_, _, Head, _, _], Conf) :-\n parser::classic_conflict(Conf, Head, Guard).\nfindPossibleAttackers([_, _, Head, _, _], Conf) :-\n parser::classic_conflict(Conf, Head).\nfindPossibleAttackers([_, _, _, Prem, _], [Conf]) :-\n member(~(Conf), Prem).\nfindPossibleAttackers([_, RuleID, _, _, _], [undercut(RuleID)]).\nfindPossibleAttackers([_, RuleID, _, _, _], Conf) :-\n parser::classic_conflict(Conf, [RuleID], Guard).\nfindPossibleAttackers([_, RuleID, _, _, _], Conf) :-\n parser::classic_conflict(Conf, [RuleID]).';
4858
+ this.z3o_1 = 'attacks(rebut, A, B) :- rebuts(A, B), !.\nattacks(contrary_rebut, A, B) :- contraryRebuts(A, B), !.\nattacks(undermine, A, B) :- undermines(A, B), !.\nattacks(contrary_undermine, A, B) :- contraryUndermines(A, B), !.\nattacks(undercut, A, B) :- undercuts(A, B), !.\nexpanded_conflict(HeadA, HeadB) :-\n parser::classic_conflict(HeadA, HeadB).\nexpanded_conflict(HeadA, HeadB) :-\n parser::classic_conflict(HeadA, HeadB, Guard),\n (callable(Guard) -> call(Guard); Guard).\nrebuts([IDPremisesA, RuleA, RuleHeadA, _, _], [IDPremisesB, RuleB, RuleHeadB, _, Info]) :-\n\tRuleB \\== none,\n Info \\== [[], [], []],\n\texpanded_conflict(RuleHeadA, RuleHeadB).\ncontraryRebuts([IDPremisesA, RuleA, [RuleHeadA], _, _], [IDPremisesB, RuleB, RuleHeadB, Body, Info]) :-\n\tRuleA \\== none,\n\tRuleB \\== none,\n\tutils::contains(~(RuleHeadA), Body).\nundermines([IDPremisesA, RuleA, RuleHeadA, _, _], [[IDPremiseB], none, RuleHeadB, _, Info]) :-\n\tInfo \\== [[], [], []],\n\texpanded_conflict(RuleHeadA, RuleHeadB).\ncontraryUndermines([IDPremisesA, none, [RuleHeadA], _, _], [IDPremisesB, RuleB, RuleHeadB, Body, Info]) :-\n\tRuleB \\== none,\n\tutils::contains(~(RuleHeadA), Body).\nundercuts([_, _, [undercut(RuleB)], _, _], [_, RuleB, _, _, [[RuleB], _, _]]).\nundercuts([_, _, NegRuleB, _, _], [_, RuleB, _, _, [[RuleB], _, _]]) :-\n expanded_conflict(NegRuleB, [RuleB]).\nfindPossibleAttackers([_, _, Head, _, _], Conf) :-\n parser::classic_conflict(Conf, Head, Guard).\nfindPossibleAttackers([_, _, Head, _, _], Conf) :-\n parser::classic_conflict(Conf, Head).\nfindPossibleAttackers([_, _, _, Prem, _], [Conf]) :-\n member(~(Conf), Prem).\nfindPossibleAttackers([_, RuleID, _, _, _], [undercut(RuleID)]).\nfindPossibleAttackers([_, RuleID, _, _, _], Conf) :-\n parser::classic_conflict(Conf, [RuleID], Guard).\nfindPossibleAttackers([_, RuleID, _, _, _], Conf) :-\n parser::classic_conflict(Conf, [RuleID]).';
4496
4859
  }
4497
4860
  var AttackRelation_instance;
4498
4861
  function AttackRelation_getInstance() {
4499
4862
  return AttackRelation_instance;
4500
4863
  }
4501
4864
  function AttackRestriction() {
4502
- this.e3l_1 = 'modifyArgumentationGraph :-\n findall(_, (\n context_check(attack(T, A, B, C)),\n checkRebutRestriction(T, A, B, C)\n ), _).\ncheckRebutRestriction(T, A, B, C) :-\n \\+ rebutRestriction(T, A, B, C),\n standard_af::removeAttack(T, A, B, C).\nrebutRestriction(rebut, _, _, C) :- restrict(C).\nrebutRestriction(undermine, _, _, C).\nrebutRestriction(contrary_rebut, _, _, _).\nrebutRestriction(contrary_undermine, _, _, _).\nrebutRestriction(undercut, _, _, _).\nrestrict([_, TopRule, _, _, [[TopRule], _, _]]) :- TopRule \\== none.';
4865
+ this.c3n_1 = 'modifyArgumentationGraph :-\n findall(_, (\n context_check(attack(T, A, B, C)),\n checkRebutRestriction(T, A, B, C)\n ), _).\ncheckRebutRestriction(T, A, B, C) :-\n \\+ rebutRestriction(T, A, B, C),\n standard_af::removeAttack(T, A, B, C).\nrebutRestriction(rebut, _, _, C) :- restrict(C).\nrebutRestriction(undermine, _, _, C).\nrebutRestriction(contrary_rebut, _, _, _).\nrebutRestriction(contrary_undermine, _, _, _).\nrebutRestriction(undercut, _, _, _).\nrestrict([_, TopRule, _, _, [[TopRule], _, _]]) :- TopRule \\== none.';
4503
4866
  }
4504
4867
  var AttackRestriction_instance;
4505
4868
  function AttackRestriction_getInstance() {
4506
4869
  return AttackRestriction_instance;
4507
4870
  }
4508
4871
  function Bp() {
4509
- this.i3l_1 = 'modifyArgumentationGraph :-\n findall(([Rules, Top, [bp(Checked)], G, I], [Z, P, [Y], GG, II]), (\n context_check(argument([Rules, Top, [bp(Checked)], G, I])),\n member(Y, [Checked]),\n context_check(argument([Z, P, [Y], GG, II]))\n ), TemplateBpPairs),\n checkBpArguments(TemplateBpPairs).\ncheckBpArguments([]).\ncheckBpArguments(TemplateBpPairs) :-\n createBpArguments(TemplateBpPairs, BpPairs),\n createBpAttacks(BpPairs).\ncreateBpArguments([], []).\ncreateBpArguments([(Original, [Z, P, Y, B, I])|Others], [(Conflict, [Z, P, Y, B, I])|BpPairs]) :-\n Conflict = [[artificial|Z], artificial, [-burdmet(Y)], [], [[artificial], [artificial], []]],\n standard_af::saveArgument(a, [-burdmet(Y)], Conflict),\n standard_af::saveSupport(Original, Conflict),\n liftBpAttacks(Original, Conflict),\n createBpArguments(Others, BpPairs).\nliftBpAttacks(Template, BpArg) :-\n findall(_, (\n context_check(attack(T, A, Template, O)),\n standard_af::saveAttack(T, A, BpArg, O)\n ), _).\ncreateBpAttacks(BpPairs) :-\n generateBpsEvaluationChain(BpPairs, OrderedBpPairs),\n evaluateBurdenedArgs(OrderedBpPairs).\ngenerateBpsEvaluationChain([], []).\ngenerateBpsEvaluationChain([BpPair|BpPairs], OrderedBpPairs) :-\n generateBpsEvaluationChain(BpPairs, TempOrderedBpPairs),\n insertBpPair(BpPair, TempOrderedBpPairs, OrderedBpPairs).\ninsertBpPair(BpPair, [], [BpPair]).\ninsertBpPair((Bp, Burdened), [(BpL, BurdenedL)|Others], [(BpL, BurdenedL)|Return]) :-\n bp_grounded::argumentChain(BurdenedL, Burdened),\n insertBpPair((Bp, Burdened), Others, Return), !.\ninsertBpPair((Bp, Burdened), [(BpL, BurdenedL)|Others], [(Bp, Burdened)|[(BpL, BurdenedL)|Others]]).\nevaluateBurdenedArgs([]).\nevaluateBurdenedArgs([(Bp, Burdened)|Others]) :-\n context_active(X),\n grounded:::argumentLabelling,\n statusToAttack((Bp, Burdened), attack(T, A, B, C)),\n context_checkout(X),\n standard_af::saveAttack(T, A, B, C),\n evaluateBurdenedArgs(Others).\nstatusToAttack((Bp, Burdened), attack(bprebut, Burdened, Bp, Bp)) :-\n context_check(in(Burdened)).\nstatusToAttack((Bp, Burdened), attack(bprebut, Bp, Burdened, Burdened)) :-\n \\+ context_check(in(Burdened)).';
4872
+ this.g3n_1 = 'modifyArgumentationGraph :-\n findall(([Rules, Top, [bp(Checked)], G, I], [Z, P, [Y], GG, II]), (\n context_check(argument([Rules, Top, [bp(Checked)], G, I])),\n member(Y, [Checked]),\n context_check(argument([Z, P, [Y], GG, II]))\n ), TemplateBpPairs),\n checkBpArguments(TemplateBpPairs).\ncheckBpArguments([]).\ncheckBpArguments(TemplateBpPairs) :-\n createBpArguments(TemplateBpPairs, BpPairs),\n createBpAttacks(BpPairs).\ncreateBpArguments([], []).\ncreateBpArguments([(Original, [Z, P, Y, B, I])|Others], [(Conflict, [Z, P, Y, B, I])|BpPairs]) :-\n Conflict = [[artificial|Z], artificial, [-burdmet(Y)], [], [[artificial], [artificial], []]],\n standard_af::saveArgument(a, [-burdmet(Y)], Conflict),\n standard_af::saveSupport(Original, Conflict),\n liftBpAttacks(Original, Conflict),\n createBpArguments(Others, BpPairs).\nliftBpAttacks(Template, BpArg) :-\n findall(_, (\n context_check(attack(T, A, Template, O)),\n standard_af::saveAttack(T, A, BpArg, O)\n ), _).\ncreateBpAttacks(BpPairs) :-\n generateBpsEvaluationChain(BpPairs, OrderedBpPairs),\n evaluateBurdenedArgs(OrderedBpPairs).\ngenerateBpsEvaluationChain([], []).\ngenerateBpsEvaluationChain([BpPair|BpPairs], OrderedBpPairs) :-\n generateBpsEvaluationChain(BpPairs, TempOrderedBpPairs),\n insertBpPair(BpPair, TempOrderedBpPairs, OrderedBpPairs).\ninsertBpPair(BpPair, [], [BpPair]).\ninsertBpPair((Bp, Burdened), [(BpL, BurdenedL)|Others], [(BpL, BurdenedL)|Return]) :-\n bp_grounded::argumentChain(BurdenedL, Burdened),\n insertBpPair((Bp, Burdened), Others, Return), !.\ninsertBpPair((Bp, Burdened), [(BpL, BurdenedL)|Others], [(Bp, Burdened)|[(BpL, BurdenedL)|Others]]).\nevaluateBurdenedArgs([]).\nevaluateBurdenedArgs([(Bp, Burdened)|Others]) :-\n context_active(X),\n grounded:::argumentLabelling,\n statusToAttack((Bp, Burdened), attack(T, A, B, C)),\n context_checkout(X),\n standard_af::saveAttack(T, A, B, C),\n evaluateBurdenedArgs(Others).\nstatusToAttack((Bp, Burdened), attack(bprebut, Burdened, Bp, Bp)) :-\n context_check(in(Burdened)).\nstatusToAttack((Bp, Burdened), attack(bprebut, Bp, Burdened, Burdened)) :-\n \\+ context_check(in(Burdened)).';
4510
4873
  }
4511
4874
  var Bp_instance;
4512
4875
  function Bp_getInstance() {
4513
4876
  return Bp_instance;
4514
4877
  }
4515
4878
  function BpGrounded() {
4516
- this.c3m_1 = 'argumentLabelling :-\n reifyBurdenOfProofs,\n filterBpDefeats,\n findall(X, context_check(argument(X)), Arguments),\n bpLabelling(Arguments).\nbpLabelling(Arguments) :-\n member(A, Arguments),\n grounded::allAttacksOUT(A), !,\n context_assert(in(A)),\n utils::subtract(Arguments, [A], NewArguments),\n bpLabelling(NewArguments).\nbpLabelling(Arguments) :-\n member(A, Arguments),\n \\+ isArgumentInBurdenOfProof(A),\n grounded::oneAttackIN(A), !,\n context_assert(out(A)),\n utils::subtract(Arguments, [A], NewArguments),\n bpLabelling(NewArguments).\nbpLabelling(Arguments) :-\n context_active(Branch),\n mostGroundedBpUnd(Arguments, A),\n context_branch(Branch, _),\n context_assert(out(A)),\n utils::subtract(Arguments, [A], NewArguments),\n bpLabelling(NewArguments).\nbpLabelling(Args) :-\n notLabelled(Args),\n findall(_, (member(A, Args), context_assert(und(A))), _).\nnotLabelled(Args) :-\n \\+ (\n member(A, Args),\n (\n context_check(in(A));\n context_check(out(A));\n context_check(und(A))\n )\n ).\nisInBurdenOfProof(Conclusion) :-\n context_check(reifiedBp(Literals)),\n member(Conclusion, Literals), !.\nisArgumentInBurdenOfProof([_, _, Conclusion, _, _]) :-\n isInBurdenOfProof(Conclusion).\nfilterBpDefeats :-\n findall(_, (\n context_check(attack(T, A, B, C)),\n filterBpDefeat(T, A, B, C)\n ), _).\nfilterBpDefeat(T, B, A, C) :-\n (T = rebut; T = undermine),\n isArgumentInBurdenOfProof(B),\n \\+ superiority::superiorArgument(B, C),\n context_retract(attack(T, B, A, C)).\nmostGroundedBpUnd(Arguments, Arg) :-\n member(Arg, Arguments),\n isArgumentInBurdenOfProof(Arg),\n \\+ (\n member(A, Arguments), Arg \\= A,\n isArgumentInBurdenOfProof(A),\n argumentChain(A, Arg)\n ).\nargumentChain(A, A) :- !.\nargumentChain(A, B) :-\n A \\== B,\n context_check(attack(_, A, C, _)),\n argumentChain(C, B).\nreifyBurdenOfProofs :-\n findall(_, (\n context_check(abstractBp(AbstractBp)),\n fillTemplate(AbstractBp, R),\n \\+ context_check(reifiedBp(R)),\n context_assert(reifiedBp(R))\n ), _).\n/*\n Fill the template (first parameter) using arguments conclusions\n*/\nfillTemplate([], []).\nfillTemplate([H|T], [[H]|R]) :-\n context_check(argument([_ , _, [P], _, _])),\n fillTemplate(T, R).';
4879
+ this.a3o_1 = 'argumentLabelling :-\n reifyBurdenOfProofs,\n filterBpDefeats,\n findall(X, context_check(argument(X)), Arguments),\n bpLabelling(Arguments).\nbpLabelling(Arguments) :-\n member(A, Arguments),\n grounded_old::allAttacksOUT(A), !,\n context_assert(in(A)),\n utils::subtract(Arguments, [A], NewArguments),\n bpLabelling(NewArguments).\nbpLabelling(Arguments) :-\n member(A, Arguments),\n \\+ isArgumentInBurdenOfProof(A),\n grounded_old::oneAttackIN(A), !,\n context_assert(out(A)),\n utils::subtract(Arguments, [A], NewArguments),\n bpLabelling(NewArguments).\nbpLabelling(Arguments) :-\n context_active(Branch),\n mostGroundedBpUnd(Arguments, A),\n context_branch(Branch, _),\n context_assert(out(A)),\n utils::subtract(Arguments, [A], NewArguments),\n bpLabelling(NewArguments).\nbpLabelling(Args) :-\n notLabelled(Args),\n findall(_, (member(A, Args), context_assert(und(A))), _).\nnotLabelled(Args) :-\n \\+ (\n member(A, Args),\n (\n context_check(in(A));\n context_check(out(A));\n context_check(und(A))\n )\n ).\nisInBurdenOfProof(Conclusion) :-\n context_check(reifiedBp(Literals)),\n member(Conclusion, Literals), !.\nisArgumentInBurdenOfProof([_, _, Conclusion, _, _]) :-\n isInBurdenOfProof(Conclusion).\nfilterBpDefeats :-\n findall(_, (\n context_check(attack(T, A, B, C)),\n filterBpDefeat(T, A, B, C)\n ), _).\nfilterBpDefeat(T, B, A, C) :-\n (T = rebut; T = undermine),\n isArgumentInBurdenOfProof(B),\n \\+ superiority::superiorArgument(B, C),\n context_retract(attack(T, B, A, C)).\nmostGroundedBpUnd(Arguments, Arg) :-\n member(Arg, Arguments),\n isArgumentInBurdenOfProof(Arg),\n \\+ (\n member(A, Arguments), Arg \\= A,\n isArgumentInBurdenOfProof(A),\n argumentChain(A, Arg)\n ).\nargumentChain(A, A) :- !.\nargumentChain(A, B) :-\n A \\== B,\n context_check(attack(_, A, C, _)),\n argumentChain(C, B).\nreifyBurdenOfProofs :-\n findall(_, (\n context_check(abstractBp(AbstractBp)),\n fillTemplate(AbstractBp, R),\n \\+ context_check(reifiedBp(R)),\n context_assert(reifiedBp(R))\n ), _).\n/*\n Fill the template (first parameter) using arguments conclusions\n*/\nfillTemplate([], []).\nfillTemplate([H|T], [[H]|R]) :-\n context_check(argument([_ , _, [P], _, _])),\n fillTemplate(T, R).';
4517
4880
  }
4518
4881
  var BpGrounded_instance;
4519
4882
  function BpGrounded_getInstance() {
4520
4883
  return BpGrounded_instance;
4521
4884
  }
4522
4885
  function BpGroundedComplete() {
4523
- this.y3l_1 = 'argumentLabelling :-\n bp_grounded::reifyBurdenOfProofs,\n findall(X, context_check(argument(X)), Arguments),\n completeBpLabelling(go, Arguments).\ncompleteBpLabelling(stop, _).\ncompleteBpLabelling(go, Arguments) :-\n bp_grounded_partial::partialBpLabelling(Arguments), !,\n findall(X, (context_check(und(X)), context_retract(und(X))), NewArgs),\n grounded::groundedLabelling(NewArgs),\n findall(X, context_check(und(X)), LeftArguments),\n stopCondition(Stop, Arguments, LeftArguments),\n completeBpLabelling(Stop, LeftArguments).\nstopCondition(stop, Args, NewArgs) :-\n utils::sort(Args, SortedArgs),\n utils::sort(NewArgs, SortedArgs), !.\nstopCondition(go, _, _) :- context_retract(und(_)).';
4886
+ this.w3n_1 = 'argumentLabelling :-\n bp_grounded::reifyBurdenOfProofs,\n findall(X, context_check(argument(X)), Arguments),\n completeBpLabelling(go, Arguments).\ncompleteBpLabelling(stop, _).\ncompleteBpLabelling(go, Arguments) :-\n bp_grounded_partial::partialBpLabelling(Arguments), !,\n findall(X, (context_check(und(X)), context_retract(und(X))), NewArgs),\n grounded_old::groundedLabelling(NewArgs),\n findall(X, context_check(und(X)), LeftArguments),\n stopCondition(Stop, Arguments, LeftArguments),\n completeBpLabelling(Stop, LeftArguments).\nstopCondition(stop, Args, NewArgs) :-\n utils::sort(Args, SortedArgs),\n utils::sort(NewArgs, SortedArgs), !.\nstopCondition(go, _, _) :- context_retract(und(_)).';
4524
4887
  }
4525
4888
  var BpGroundedComplete_instance;
4526
4889
  function BpGroundedComplete_getInstance() {
4527
4890
  return BpGroundedComplete_instance;
4528
4891
  }
4529
4892
  function BpGroundedPartial() {
4530
- this.g3m_1 = "argumentLabelling :-\n bp_grounded::reifyBurdenOfProofs,\n findall(X, context_check(argument(X)), Arguments),\n partialBpLabelling(Arguments), !.\npartialBpLabelling([]).\npartialBpLabelling(Arguments) :-\n mostGroundedArgument(Arguments, A),\n debug::writeDebug(['Evaluating ', A]),\n demonstration(Arguments, A, [A], Evaluated),\n utils::subtract(Arguments, [Evaluated], NewArgs),\n partialBpLabelling(NewArgs).\n/*\n (a.i) BP(neg(\u03C6)), and no argument B for neg(\u03C6) such that A < B is IN*, and no A1,...An is OUT*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tisComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n\t superiorComplementArgument(A, B),\n\t context_check(in(B))\n\t),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\t\\+ (\n\t context_check(support(X, A)),\n\t context_check(out(X))\n\t),\n\tdebug::writeDebug(['Adding argument: ', A, ' to IN* (2.a.i)']),\n context_assert(in(A)).\n/*\n (a.ii) not BP(neg(\u03C6)) and every argument B for neg(\u03C6) such that B(not <)A is OUT*, and every A1,...An is IN*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\t\\+ isComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n superiorOrEqualComplementArgument(A, B),\n \\+ context_check(out(B))\n ),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\t\\+ (\n context_check(support(X, A)),\n \\+ context_check(in(X))\n ),\n\tdebug::writeDebug(['Adding argument: ', A, ' to IN* (2.a.ii)']),\n context_assert(in(A)).\n/*\n (b.i.1) BP(\u03C6) and exists an argument B for neg(\u03C6) such that B(not <)A is not OUT*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, _),\n\tsuperiorOrEqualComplementArgument(A, B),\n\t\\+ context_check(out(B)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.i.1)']),\n context_assert(out(A)).\n/*\n (b.i.2) BP(\u03C6) and exist one of A1,...An is not IN*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\tcontext_check(support(X, A)),\n \\+ context_check(in(X)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.i.2)']),\n context_assert(out(A)).\n/*\n (b.ii.1) not BP(\u03C6) and an argument B for neg(\u03C6) such A < B is IN*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, _),\n\tsuperiorComplementArgument(A, B),\n\tcontext_check(in(B)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.ii.1)']),\n context_assert(out(A)).\n/*\n (b.ii.2) not BP(\u03C6) and one of A1,...An is OUT*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\tcontext_check(support(X, A)),\n context_check(out(X)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.ii.2)']),\n context_assert(out(A)).\n/*\n If above definitions do not apply try to decide on the arguments on which they depend\n*/\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n isComplementInBurdenOfProof(A),\n\tnotEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\tisComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n superiorComplementArgument(A, X),\n context_check(in(X))\n ),\n notEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n \\+ isComplementInBurdenOfProof(A),\n\tnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\t\\+ isComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n superiorOrEqualComplementArgument(A, X),\n \\+ context_check(out(X))\n ),\n notEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\n/*\n (c) A is labelled UND* otherwise.\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tdebug::writeDebug(['Adding argument: ', A, ' to UND* (2.c)']),\n context_assert(und(A)).\nisComplementInBurdenOfProof(A) :-\n complement(A, Complement),\n bp_grounded::isInBurdenOfProof(Complement), !.\nmostGroundedArgument([], []).\nmostGroundedArgument([X], X).\nmostGroundedArgument([[L, _, _, _, _]|T], [L2, Q2, W2, B2, I2]) :-\n mostGroundedArgument(T, [L2, Q2, W2, B2, I2]),\n length(L, LN1),\n length(L2, LN2),\n LN1 > LN2, !.\nmostGroundedArgument([A|_], A).\n/*\n Get a conclusion complement\n*/\ncomplement([_, _, Conclusion, _, _], A) :-\n attack::expanded_conflict(Conclusion, A).\nnotEvaluatedSubArgument(Arguments, A, Resolving, B) :-\n context_check(support(B, A)),\n member(B, Arguments),\n \\+ member(B, Resolving).\nnotEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, B) :-\n superiorComplementArgument(A, B),\n member(B, Arguments),\n \\+ member(B, Resolving).\nnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B) :-\n superiorOrEqualComplementArgument(A, B),\n member(B, Arguments),\n \\+ member(B, Resolving).\nsuperiorComplementArgument(A, [A, B, CA, BB, I]) :-\n complement(A, CA),\n context_check(argument([R, B, CA, BB, I])),\n superiority::superiorArgument([R, B, CA, BB, I], A).\nsuperiorOrEqualComplementArgument(A, [R, B, CA, BB, I]) :-\n complement(A, CA),\n context_check(argument([R, B, CA, BB, I])),\n \\+ superiority::superiorArgument(A, [R, B, CA, BB, I]).";
4893
+ this.e3o_1 = "argumentLabelling :-\n bp_grounded::reifyBurdenOfProofs,\n findall(X, context_check(argument(X)), Arguments),\n partialBpLabelling(Arguments), !.\npartialBpLabelling([]).\npartialBpLabelling(Arguments) :-\n mostGroundedArgument(Arguments, A),\n debug::writeDebug(['Evaluating ', A]),\n demonstration(Arguments, A, [A], Evaluated),\n utils::subtract(Arguments, [Evaluated], NewArgs),\n partialBpLabelling(NewArgs).\n/*\n (a.i) BP(neg(\u03C6)), and no argument B for neg(\u03C6) such that A < B is IN*, and no A1,...An is OUT*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tisComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n\t superiorComplementArgument(A, B),\n\t context_check(in(B))\n\t),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\t\\+ (\n\t context_check(support(X, A)),\n\t context_check(out(X))\n\t),\n\tdebug::writeDebug(['Adding argument: ', A, ' to IN* (2.a.i)']),\n context_assert(in(A)).\n/*\n (a.ii) not BP(neg(\u03C6)) and every argument B for neg(\u03C6) such that B(not <)A is OUT*, and every A1,...An is IN*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\t\\+ isComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n superiorOrEqualComplementArgument(A, B),\n \\+ context_check(out(B))\n ),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\t\\+ (\n context_check(support(X, A)),\n \\+ context_check(in(X))\n ),\n\tdebug::writeDebug(['Adding argument: ', A, ' to IN* (2.a.ii)']),\n context_assert(in(A)).\n/*\n (b.i.1) BP(\u03C6) and exists an argument B for neg(\u03C6) such that B(not <)A is not OUT*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, _),\n\tsuperiorOrEqualComplementArgument(A, B),\n\t\\+ context_check(out(B)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.i.1)']),\n context_assert(out(A)).\n/*\n (b.i.2) BP(\u03C6) and exist one of A1,...An is not IN*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\tcontext_check(support(X, A)),\n \\+ context_check(in(X)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.i.2)']),\n context_assert(out(A)).\n/*\n (b.ii.1) not BP(\u03C6) and an argument B for neg(\u03C6) such A < B is IN*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, _),\n\tsuperiorComplementArgument(A, B),\n\tcontext_check(in(B)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.ii.1)']),\n context_assert(out(A)).\n/*\n (b.ii.2) not BP(\u03C6) and one of A1,...An is OUT*\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\t\\+ notEvaluatedSubArgument(Arguments, A, Resolving, _),\n\tcontext_check(support(X, A)),\n context_check(out(X)),\n debug::writeDebug(['Adding argument: ', A, ' to OUT* (2.b.ii.2)']),\n context_assert(out(A)).\n/*\n If above definitions do not apply try to decide on the arguments on which they depend\n*/\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n isComplementInBurdenOfProof(A),\n\tnotEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\tisComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n superiorComplementArgument(A, X),\n context_check(in(X))\n ),\n notEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n \\+ isComplementInBurdenOfProof(A),\n\tnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\t\\+ isComplementInBurdenOfProof(A),\n\t\\+ notEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, _),\n\t\\+ (\n superiorOrEqualComplementArgument(A, X),\n \\+ context_check(out(X))\n ),\n notEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\tbp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\ndemonstration(Arguments, A, Resolving, Evaluated) :-\n\t\\+ bp_grounded::isArgumentInBurdenOfProof(A),\n\tnotEvaluatedSubArgument(Arguments, A, Resolving, B),\n demonstration(Arguments, B, [B|Resolving], Evaluated).\n/*\n (c) A is labelled UND* otherwise.\n*/\ndemonstration(Arguments, A, Resolving, A) :-\n\tdebug::writeDebug(['Adding argument: ', A, ' to UND* (2.c)']),\n context_assert(und(A)).\nisComplementInBurdenOfProof(A) :-\n complement(A, Complement),\n bp_grounded::isInBurdenOfProof(Complement), !.\nmostGroundedArgument([], []).\nmostGroundedArgument([X], X).\nmostGroundedArgument([[L, _, _, _, _]|T], [L2, Q2, W2, B2, I2]) :-\n mostGroundedArgument(T, [L2, Q2, W2, B2, I2]),\n length(L, LN1),\n length(L2, LN2),\n LN1 > LN2, !.\nmostGroundedArgument([A|_], A).\n/*\n Get a conclusion complement\n*/\ncomplement([_, _, Conclusion, _, _], A) :-\n attack::expanded_conflict(Conclusion, A).\nnotEvaluatedSubArgument(Arguments, A, Resolving, B) :-\n context_check(support(B, A)),\n member(B, Arguments),\n \\+ member(B, Resolving).\nnotEvaluatedSuperiorComplementArgument(Arguments, A, Resolving, B) :-\n superiorComplementArgument(A, B),\n member(B, Arguments),\n \\+ member(B, Resolving).\nnotEvaluatedSuperiorOrEqualComplementArgument(Arguments, A, Resolving, B) :-\n superiorOrEqualComplementArgument(A, B),\n member(B, Arguments),\n \\+ member(B, Resolving).\nsuperiorComplementArgument(A, [A, B, CA, BB, I]) :-\n complement(A, CA),\n context_check(argument([R, B, CA, BB, I])),\n superiority::superiorArgument([R, B, CA, BB, I], A).\nsuperiorOrEqualComplementArgument(A, [R, B, CA, BB, I]) :-\n complement(A, CA),\n context_check(argument([R, B, CA, BB, I])),\n \\+ superiority::superiorArgument(A, [R, B, CA, BB, I]).";
4531
4894
  }
4532
4895
  var BpGroundedPartial_instance;
4533
4896
  function BpGroundedPartial_getInstance() {
4534
4897
  return BpGroundedPartial_instance;
4535
4898
  }
4536
4899
  function Complete() {
4537
- this.k3m_1 = 'argumentLabelling :-\n cache_retract(complete(_,_,_)),\n grounded:::argumentLabelling,\n context_active(Branch),\n completeLabelling(Branch).\ncompleteLabelling(_) :-\n admissibleSet,\n utils::recoverArgumentLabelling(In, Out, Und),\n \\+ cache_check(complete(In, Out, Und)),\n cache_assert(complete(In, Out, Und)).\ncompleteLabelling(Branch) :-\n context_check(und(X)),\n context_branch(Branch, NewBranch),\n findall(Y, (context_check(und(Y)), Y \\= X), Arguments),\n context_retract(und(_)),\n context_assert(in(X)),\n grounded::groundedLabelling(Arguments),\n completeLabelling(NewBranch).\nadmissibleSet :-\n \\+ (context_check(in(H)), \\+ admissible(H)).\nadmissible(H) :-\n \\+ (\n context_check(attack(_, Attacker, H, _)),\n \\+ (\n context_check(attack(_, Defendant, Attacker, _)),\n context_check(in(Defendant))\n )\n ).';
4900
+ this.i3o_1 = 'argumentLabelling :-\n cache_retract(complete(_,_,_,_)),\n grounded:::argumentLabelling,\n context_active(Branch),\n completeLabelling(Branch).\ncompleteLabelling(Branch) :-\n admissibleSet,\n utils::recoverArgumentLabellingId(In, Out, Und),\n \\+ cache_check(complete(In, Out, Und, _)),\n cache_assert(complete(In, Out, Und, Branch)).\ncompleteLabelling(Branch) :-\n context_check(undId(IdX)),\n context_check(clause(arg(IdX), argument(X))),\n context_branch(Branch, NewBranch),\n context_retract(und(_)),\n context_retract(undId(_)),\n context_assert(in(X)),\n context_assert(inId(IdX)),\n grounded::argumentLabelling,\n completeLabelling(NewBranch).\nadmissibleSet :-\n \\+ (context_check(inId(H)), \\+ admissible(H)).\nadmissible(H) :-\n \\+ (\n context_check(clause(att(Attacker, H), _)),\n \\+ (\n context_check(clause(att(Defendant, Attacker), _)),\n context_check(inId(Defendant)),\n Defendant \\= Attacker\n )\n ).';
4538
4901
  }
4539
4902
  var Complete_instance;
4540
4903
  function Complete_getInstance() {
4541
4904
  return Complete_instance;
4542
4905
  }
4543
4906
  function Debug() {
4544
- this.c3n_1 = "printTheory(Rules) :-\n write('HERE THE THEORY:'),nl,\n findall(rule([Id, Body, Head]), member(rule([Id, Body, Head]), Rules), ListRules),\n utils::writeListNl(ListRules),\n findall(premise([A, B]), member(premise([A, B]), Rules), ListPremises),\n utils::writeListNl(ListPremises),\n findall(sup(A, B), member(sup(A, B), Rules), ListSups),\n utils::writeListNl(ListSups).\nprintArgumentationGraph(Arguments, Attacks, Supports) :-\n\tfindall(\n\t [IDPremises, '\\n', ' TOPRULE ', TopRule, '\\n', ' CONCLUSION ', RuleHead, '\\n', ' BODY ', Body, '\\n', ' INFO ', Info, '\\n'],\n\t member([IDPremises, TopRule, RuleHead, Body, Info], Arguments),\n ArgumentsToPrint\n ),\n findall((A1, ' SUPPORTS ', A2), member((A1, A2), Supports), SupportsToPrint),\n\tfindall((A1, ' ', T, ' ', A2, ' ON ', A3), member((T, A1, A2, A3), Attacks), AttacksToPrint),\n write('HERE THE GROUNDED SEMI-ABSTRACT ARGUMENTATION GRAPH'),nl,\n\tutils::writeListNl(ArgumentsToPrint),\n\tutils::writeListNl(SupportsToPrint),\n\tutils::writeListNl(AttacksToPrint).\nprintArgumentLabelling([IN, OUT, UND]) :-\n write('HERE THE ARGUMENTS LABELLED IN: '),nl,\n utils::writeListNl(IN),\n write('HERE THE ARGUMENTS LABELLED OUT: '),nl,\n utils::writeListNl(OUT),\n write('HERE THE ARGUMENTS LABELLED UND: '),nl,\n utils::writeListNl(UND).\nprintStatementLabelling([In, Ni, Und]) :-\n write('HERE THE STATEMENTS LABELLED IN: '),nl,\n utils::writeListNl(In),\n write('HERE THE STATEMENTS LABELLED NI: '),nl,\n utils::writeListNl(Ni),\n write('HERE THE STATEMENTS LABELLED UND: '),nl,\n utils::writeListNl(Und).\ndebug.\nwriteDebug(List) :-\n debug,\n utils::writeList(List).\nwriteDebug(_) :- \\+ debug.";
4907
+ this.a3p_1 = "printTheory(Rules) :-\n write('HERE THE THEORY:'),nl,\n findall(rule([Id, Body, Head]), member(rule([Id, Body, Head]), Rules), ListRules),\n utils::writeListNl(ListRules),\n findall(premise([A, B]), member(premise([A, B]), Rules), ListPremises),\n utils::writeListNl(ListPremises),\n findall(sup(A, B), member(sup(A, B), Rules), ListSups),\n utils::writeListNl(ListSups).\nprintArgumentationGraph(Arguments, Attacks, Supports) :-\n\tfindall(\n\t [IDPremises, '\\n', ' TOPRULE ', TopRule, '\\n', ' CONCLUSION ', RuleHead, '\\n', ' BODY ', Body, '\\n', ' INFO ', Info, '\\n'],\n\t member([IDPremises, TopRule, RuleHead, Body, Info], Arguments),\n ArgumentsToPrint\n ),\n findall((A1, ' SUPPORTS ', A2), member((A1, A2), Supports), SupportsToPrint),\n\tfindall((A1, ' ', T, ' ', A2, ' ON ', A3), member((T, A1, A2, A3), Attacks), AttacksToPrint),\n write('HERE THE GROUNDED SEMI-ABSTRACT ARGUMENTATION GRAPH'),nl,\n\tutils::writeListNl(ArgumentsToPrint),\n\tutils::writeListNl(SupportsToPrint),\n\tutils::writeListNl(AttacksToPrint).\nprintArgumentLabelling([IN, OUT, UND]) :-\n write('HERE THE ARGUMENTS LABELLED IN: '),nl,\n utils::writeListNl(IN),\n write('HERE THE ARGUMENTS LABELLED OUT: '),nl,\n utils::writeListNl(OUT),\n write('HERE THE ARGUMENTS LABELLED UND: '),nl,\n utils::writeListNl(UND).\nprintStatementLabelling([In, Ni, Und]) :-\n write('HERE THE STATEMENTS LABELLED IN: '),nl,\n utils::writeListNl(In),\n write('HERE THE STATEMENTS LABELLED NI: '),nl,\n utils::writeListNl(Ni),\n write('HERE THE STATEMENTS LABELLED UND: '),nl,\n utils::writeListNl(Und).\ndebug.\nwriteDebug(List) :-\n debug,\n utils::writeList(List).\nwriteDebug(_) :- \\+ debug.";
4545
4908
  }
4546
4909
  var Debug_instance;
4547
4910
  function Debug_getInstance() {
4548
4911
  return Debug_instance;
4549
4912
  }
4550
4913
  function DefPreferences() {
4551
- this.m3l_1 = 'modifyArgumentationGraph :-\n assertAllSup,\n findall((T, A, B, C), context_check(attack(T, A, B, C)), Attacks),\n filterSupRelatedAttacks(Attacks, InvalidAttacks),\n convertAttacks(InvalidAttacks),\n buildPrefAttacks.\nassertAllSup :-\n context_retract(sup(_, _)),\n findall(_,\n (\n context_check(argument([_, _, [sup(RuleOne, RuleTwo)], _, _])),\n \\+ context_check(sup(RuleOne, RuleTwo)),\n context_assert(sup(RuleOne, RuleTwo))\n ),\n _).\nfilterSupRelatedAttacks([], []).\nfilterSupRelatedAttacks([(T, A, B, C)|Attacks], [(T, A, B, C)|Invalid]) :-\n invalid(T, A, B, C, _),\n filterSupRelatedAttacks(Attacks, Invalid), !.\nfilterSupRelatedAttacks([_|Attacks], Invalid) :-\n filterSupRelatedAttacks(Attacks, Invalid).\ninvalid(rebut, A, B, C, SupSet) :- superiority::superiorArgument(C, A, SupSet), !.\ninvalid(undermine, A, B, C, SupSet) :- superiority::superiorArgument(C, A, SupSet), !.\n/*\n* Translates the attack relations identified during the building phase.\n* Attack from A to B -> Argument [[], attack, Attack]\n* support(A, Argument)\n* attack(Argument, B)\n* If an Argument A built in this way attacks the argument B, and this one also attacks a third argument C\n* through the argument B1 we have to consider an attack from A to B1 (transitive attack)\n*/\nconvertAttacks(Attacks) :-\n conversion(Attacks),\n standard_af::buildTransitiveAttacks.\nconversion(List) :-\n member((T, A, B, B), List),\n generateDirectAttackArgument(T, A, B, B),\n fail.\nconversion(List) :-\n member((T, A, B, C), List),\n C \\= B,\n generateTransitiveAttackArgument(T, A, B, C),\n fail.\nconversion(_).\ngenerateTransitiveAttackArgument(T, A, B, C) :-\n context_check(argument([Id, attack, [attack(T, A, C, C)], G, I])),\n standard_af::saveAttack(T, [Id, attack, [attack(T, A, C, C)], G, I], B, C),\n standard_af::removeAttack(T, A, B, C).\ngenerateDirectAttackArgument(T, A, B, B) :-\n RArgument = [[attack], attack, [attack(T, A, B, B)], [], [[attack], [attack], []]],\n standard_af::saveArgument(a, [attack(T, A, B, B)], RArgument),\n standard_af::saveSupport(A, RArgument),\n standard_af::saveAttack(T, RArgument, B, B),\n standard_af::removeAttack(T, A, B, B).\n/*\n* Computes the pref attack. If an Argument A has a conclusion in the form sup(a, b), we verify if\n* the attacks involving arguments built on the rules a or b are compatible with this preference.\n* If there are some contradictions we add an attack from the argument A towards the incompatible attack\n*/\nbuildPrefAttacks :-\n context_check(argument([IdB, attack, [attack(T, A, B, C)], G, I])),\n invalid(T, A, B, C, SupSet),\n member(X, SupSet),\n context_check(argument([IdA, TRA, [X], GG, II])),\n standard_af::saveAttack(pref, [IdA, TRA, [X], GG, II], [IdB, attack, [attack(T, A, B, C)], G, I], [IdB, attack, [attack(T, A, B, C)], G, I]),\n fail.\nbuildPrefAttacks.';
4914
+ this.k3n_1 = 'modifyArgumentationGraph :-\n assertAllSup,\n findall((T, A, B, C), context_check(attack(T, A, B, C)), Attacks),\n filterSupRelatedAttacks(Attacks, InvalidAttacks),\n convertAttacks(InvalidAttacks),\n buildPrefAttacks.\nassertAllSup :-\n context_retract(sup(_, _)),\n findall(_,\n (\n context_check(argument([_, _, [sup(RuleOne, RuleTwo)], _, _])),\n \\+ context_check(sup(RuleOne, RuleTwo)),\n context_assert(sup(RuleOne, RuleTwo))\n ),\n _).\nfilterSupRelatedAttacks([], []).\nfilterSupRelatedAttacks([(T, A, B, C)|Attacks], [(T, A, B, C)|Invalid]) :-\n invalid(T, A, B, C, _),\n filterSupRelatedAttacks(Attacks, Invalid), !.\nfilterSupRelatedAttacks([_|Attacks], Invalid) :-\n filterSupRelatedAttacks(Attacks, Invalid).\ninvalid(rebut, A, B, C, SupSet) :- superiority::superiorArgument(C, A, SupSet), !.\ninvalid(undermine, A, B, C, SupSet) :- superiority::superiorArgument(C, A, SupSet), !.\n/*\n* Translates the attack relations identified during the building phase.\n* Attack from A to B -> Argument [[], attack, Attack]\n* support(A, Argument)\n* attack(Argument, B)\n* If an Argument A built in this way attacks the argument B, and this one also attacks a third argument C\n* through the argument B1 we have to consider an attack from A to B1 (transitive attack)\n*/\nconvertAttacks(Attacks) :-\n conversion(Attacks).\nconversion(List) :-\n member((T, A, B, B), List),\n generateDirectAttackArgument(T, A, B, B),\n fail.\nconversion(List) :-\n member((T, A, B, C), List),\n C \\= B,\n generateTransitiveAttackArgument(T, A, B, C),\n fail.\nconversion(_).\ngenerateTransitiveAttackArgument(T, A, B, C) :-\n context_check(argument([Id, attack, [attack(T, A, C, C)], G, I])),\n standard_af::saveAttack(T, [Id, attack, [attack(T, A, C, C)], G, I], B, C),\n standard_af::removeAttack(T, A, B, C).\ngenerateDirectAttackArgument(T, A, B, B) :-\n RArgument = [[attack], attack, [attack(T, A, B, B)], [], [[attack], [attack], []]],\n standard_af::saveArgument(a, [attack(T, A, B, B)], RArgument),\n standard_af::saveSupport(A, RArgument),\n findall(_, (\n context_check(attack(X, Y, A, Z)),\n standard_af::saveAttack(X, Y, RArgument, Z)\n ), _),\n standard_af::saveAttack(T, RArgument, B, B),\n standard_af::removeAttack(T, A, B, B).\n/*\n* Computes the pref attack. If an Argument A has a conclusion in the form sup(a, b), we verify if\n* the attacks involving arguments built on the rules a or b are compatible with this preference.\n* If there are some contradictions we add an attack from the argument A towards the incompatible attack\n*/\nbuildPrefAttacks :-\n context_check(argument([IdB, attack, [attack(T, A, B, C)], G, I])),\n invalid(T, A, B, C, SupSet),\n member(X, SupSet),\n context_check(argument([IdA, TRA, [X], GG, II])),\n standard_af::saveAttack(pref, [IdA, TRA, [X], GG, II], [IdB, attack, [attack(T, A, B, C)], G, I], [IdB, attack, [attack(T, A, B, C)], G, I]),\n standard_af::buildTransitiveAttacks(pref, [IdA, TRA, [X], GG, II], [IdB, attack, [attack(T, A, B, C)], G, I]),\n fail.\nbuildPrefAttacks.';
4552
4915
  }
4553
4916
  var DefPreferences_instance;
4554
4917
  function DefPreferences_getInstance() {
4555
4918
  return DefPreferences_instance;
4556
4919
  }
4557
4920
  function GenericDefPreferences() {
4558
- this.q3l_1 = 'modifyArgumentationGraph :-\n defeasiblePref::assertAllSup,\n findall((T, A, B, C), context_check(attack(T, A, B, C)), Attacks),\n defeasiblePref::filterSupRelatedAttacks(Attacks, InvalidAttacks),\n defeasiblePref::convertAttacks(InvalidAttacks),\n buildPrefAttacks,\n standard_af::buildTransitiveAttacks.\nbuildPrefAttacks :-\n context_check(argument([IdB, attack, [attack(T, A, B, C)], G, I])),\n defeasiblePref::invalid(T, A, B, C, SupSet),\n createSuperiorityArgument(SupSet, Arg),\n standard_af::saveAttack(pref, Arg, [IdB, attack, [attack(T, A, B, C)], G, I], [IdB, attack, [attack(T, A, B, C)], G, I]),\n fail.\nbuildPrefAttacks.\ncreateSuperiorityArgument(SupSet, Argument) :-\n findall([Id, TR, [X], G, I], (\n member(X, SupSet),\n context_check(argument([Id, TR, [X], G, I]))\n ), SupportArguments),\n mergeIds(SupportArguments, MergedId),\n Argument = [MergedId, pref, [preference(SupSet)], [], [[pref], MergedId, []]],\n standard_af::saveArgument(a, [preference(SupSet)], Argument),\n findall(_, (\n member(A, SupportArguments),\n standard_af::saveSupport(A, Argument)\n ), _).\nmergeIds([], [pref]).\nmergeIds(Arguments, [pref|MergedId]) :-\n findall(Id, member([Id, _, _, _, _], Arguments), Res),\n utils::appendLists(Res, MergedId).';
4921
+ this.o3n_1 = 'modifyArgumentationGraph :-\n defeasiblePref::assertAllSup,\n findall((T, A, B, C), context_check(attack(T, A, B, C)), Attacks),\n defeasiblePref::filterSupRelatedAttacks(Attacks, InvalidAttacks),\n defeasiblePref::convertAttacks(InvalidAttacks),\n buildPrefAttacks.\nbuildPrefAttacks :-\n context_check(argument([IdB, attack, [attack(T, A, B, C)], G, I])),\n defeasiblePref::invalid(T, A, B, C, SupSet),\n createSuperiorityArgument(SupSet, Arg),\n standard_af::saveAttack(pref, Arg, [IdB, attack, [attack(T, A, B, C)], G, I], [IdB, attack, [attack(T, A, B, C)], G, I]),\n standard_af::buildTransitiveAttacks(pref, Arg, [IdB, attack, [attack(T, A, B, C)], G, I]),\n fail.\nbuildPrefAttacks.\ncreateSuperiorityArgument(SupSet, Argument) :-\n findall([Id, TR, [X], G, I], (\n member(X, SupSet),\n context_check(argument([Id, TR, [X], G, I]))\n ), SupportArguments),\n mergeIds(SupportArguments, MergedId),\n Argument = [MergedId, pref, [preference(SupSet)], [], [[pref], MergedId, []]],\n standard_af::saveArgument(a, [preference(SupSet)], Argument),\n findall(_, (\n member(A, SupportArguments),\n standard_af::saveSupport(A, Argument),\n findall(_, (\n context_check(attack(X, Y, A, Z)),\n standard_af::saveAttack(X, Y, Argument, Z)\n ), _)\n ), _).\nmergeIds([], [pref]).\nmergeIds(Arguments, [pref|MergedId]) :-\n findall(Id, member([Id, _, _, _, _], Arguments), Res),\n utils::appendLists(Res, MergedId).';
4559
4922
  }
4560
4923
  var GenericDefPreferences_instance;
4561
4924
  function GenericDefPreferences_getInstance() {
4562
4925
  return GenericDefPreferences_instance;
4563
4926
  }
4564
4927
  function Grounded() {
4565
- this.o3m_1 = 'argumentLabelling :-\n findall(X, context_check(argument(X)), Arguments),\n groundedLabelling(Arguments).\ngroundedLabelling(UND) :-\n member(A, UND),\n allAttacksOUT(A), !,\n utils::subtract(UND, [A], NewUND),\n context_assert(in(A)),\n groundedLabelling(NewUND).\ngroundedLabelling(UND) :-\n member(A, UND),\n oneAttackIN(A), !,\n utils::subtract(UND, [A], NewUND),\n context_assert(out(A)),\n groundedLabelling(NewUND).\ngroundedLabelling(Args) :- findall(_, (member(A, Args), context_assert(und(A))), _).\nallAttacksOUT(A) :-\n \\+ ( context_check(attack(_, B, A, _)), \\+ (context_check(out(B)))).\noneAttackIN(A) :-\n context_check(attack(_, B, A, _)),\n context_check(in(B)), !.\noneAttackIN(A) :-\n context_check(attack(_, A, B, _)),\n context_check(in(B)), !.';
4928
+ this.m3o_1 = 'argumentLabelling :-\n findall(X, context_check(argument(X)), Arguments),\n groundedLabelling(Arguments).\ngroundedLabelling(UND) :-\n member(A, UND),\n allAttacksOUT(A), !,\n utils::subtract(UND, [A], NewUND),\n context_assert(in(A)),\n groundedLabelling(NewUND).\ngroundedLabelling(UND) :-\n member(A, UND),\n oneAttackIN(A), !,\n utils::subtract(UND, [A], NewUND),\n context_assert(out(A)),\n groundedLabelling(NewUND).\ngroundedLabelling(Args) :- findall(_, (member(A, Args), context_assert(und(A))), _).\nallAttacksOUT(A) :-\n \\+ ( context_check(attack(_, B, A, _)), \\+ (context_check(out(B)))).\noneAttackIN(A) :-\n context_check(attack(_, B, A, _)),\n context_check(in(B)), !.\noneAttackIN(A) :-\n context_check(attack(_, A, B, _)),\n context_check(in(B)), !.';
4566
4929
  }
4567
4930
  var Grounded_instance;
4568
4931
  function Grounded_getInstance() {
4569
4932
  return Grounded_instance;
4570
4933
  }
4571
4934
  function GroundedOptimized() {
4572
- this.s3m_1 = 'argumentLabelling :-\n groundedLabelling.\ngroundedLabelling :-\n findall(t, evaluateIn, I),\n findall(t, evaluateOut, O),\n finalize(I, O).\nevaluateIn :-\n argument_to_evaluate(A, IdA),\n allAttacksOUT(IdA),\n context_assert(in(A)),\n context_assert(inId(IdA)).\nevaluateOut :-\n argument_to_evaluate(A, IdA),\n oneAttackIN(IdA),\n context_assert(out(A)),\n context_assert(outId(IdA)).\nfinalize(I, O) :- I \\= [], !, groundedLabelling.\nfinalize(I, O) :- O \\= [], !, groundedLabelling.\nfinalize([], []) :-\n argument_to_evaluate(A, _),\n context_assert(und(A)),\n fail.\nfinalize(_, _).\nargument_to_evaluate(X, IdX) :-\n context_check(clause(arg(IdX), argument(X))),\n \\+ context_check(outId(IdX)),\n \\+ context_check(inId(IdX)).\nallAttacksOUT(A) :-\n \\+ ( context_check(clause(att(B, A), _)), \\+ (context_check(outId(B)))).\noneAttackIN(A) :-\n context_check(clause(att(B, A), _)),\n context_check(inId(B)), !.\noneAttackIN(A) :-\n context_check(clause(att(A, B), _)),\n context_check(inId(B)), !.';
4935
+ this.q3o_1 = 'argumentLabelling :-\n groundedLabelling.\ngroundedLabelling :-\n findall(t, evaluateIn, I),\n findall(t, evaluateOut, O),\n finalize(I, O).\nevaluateIn :-\n argument_to_evaluate(A, IdA),\n allAttacksOUT(IdA),\n context_assert(in(A)),\n context_assert(inId(IdA)).\nevaluateOut :-\n argument_to_evaluate(A, IdA),\n oneAttackIN(IdA),\n context_assert(out(A)),\n context_assert(outId(IdA)).\nfinalize(I, O) :- I \\= [], !, groundedLabelling.\nfinalize(I, O) :- O \\= [], !, groundedLabelling.\nfinalize([], []) :-\n argument_to_evaluate(A, IdA),\n context_assert(und(A)),\n context_assert(undId(IdA)),\n fail.\nfinalize(_, _).\nargument_to_evaluate(X, IdX) :-\n context_check(clause(arg(IdX), argument(X))),\n \\+ context_check(outId(IdX)),\n \\+ context_check(inId(IdX)).\nallAttacksOUT(A) :-\n \\+ ( context_check(clause(att(B, A), _)), \\+ (context_check(outId(B)))).\noneAttackIN(A) :-\n context_check(clause(att(B, A), _)),\n context_check(inId(B)), !.';
4573
4936
  }
4574
4937
  var GroundedOptimized_instance;
4575
4938
  function GroundedOptimized_getInstance() {
4576
4939
  return GroundedOptimized_instance;
4577
4940
  }
4578
4941
  function Preferences() {
4579
- this.u3l_1 = 'modifyArgumentationGraph :-\n findall(_, (\n context_check(attack(T, A, B, C)),\n checkStandardPreference(T, A, B, C)\n ), _).\ncheckStandardPreference(T, A, B, C) :-\n \\+ standardPreferences(T, A, B, C),\n standard_af::removeAttack(T, A, B, C).\nstandardPreferences(rebut, A, _, C) :- \\+ superiority::superiorArgument(C, A).\nstandardPreferences(undermine, A, _, C) :- \\+ superiority::superiorArgument(C, A).\nstandardPreferences(contrary_rebut, _, _, _).\nstandardPreferences(contrary_undermine, _, _, _).\nstandardPreferences(undercut, _, _, _).';
4942
+ this.s3n_1 = 'modifyArgumentationGraph :-\n findall(_, (\n context_check(attack(T, A, B, C)),\n checkStandardPreference(T, A, B, C)\n ), _).\ncheckStandardPreference(T, A, B, C) :-\n \\+ standardPreferences(T, A, B, C),\n standard_af::removeAttack(T, A, B, C).\nstandardPreferences(rebut, A, _, C) :- \\+ superiority::superiorArgument(C, A).\nstandardPreferences(undermine, A, _, C) :- \\+ superiority::superiorArgument(C, A).\nstandardPreferences(contrary_rebut, _, _, _).\nstandardPreferences(contrary_undermine, _, _, _).\nstandardPreferences(undercut, _, _, _).';
4580
4943
  }
4581
4944
  var Preferences_instance;
4582
4945
  function Preferences_getInstance() {
4583
4946
  return Preferences_instance;
4584
4947
  }
4585
4948
  function QueryMode_0() {
4586
- this.d3n_1 = 'computeStatementAcceptance(Goal, Res) :-\n computeStatementAcceptance(Goal),\n mineResults(Goal, Res).\ncomputeStatementAcceptance(Goal, YesResult, NoResult, UndResult) :-\n computeStatementAcceptance(Goal),\n mineResults(Goal, YesResult, NoResult, UndResult).\ncomputeStatementAcceptance(Goal) :-\n \\+ queryMode,\n abstract:::computeGlobalAcceptance.\ncomputeStatementAcceptance(Goal) :-\n queryMode,\n findall(_, buildSubGraph(Goal, _), _),\n graphBuildMode(X),\n X:::buildAttacks,\n abstract:::modifyGraph,\n abstract:::buildArgumentLabelling,\n abstract:::buildStatementLabelling.\nmineResults(Goal, YesResult, NoResult, UndResult) :-\n findall(Goal, context_check(statIn([Goal])), In),\n findall(Goal, context_check(statOut([Goal])), Out),\n findall(Goal, context_check(statUnd([Goal])), Und),\n utils::sort(In, YesResult),\n utils::sort(Out, NoResult),\n utils::sort(Und, UndResult).\nmineResults(Goal, Result) :-\n findall(in(Goal), context_check(statIn([Goal])), In),\n findall(out(Goal), context_check(statOut([Goal])), Out),\n findall(und(Goal), context_check(statUnd([Goal])), Und),\n utils::appendLists([In, Out, Und], Result).\nground_vars(Term, Grounded) :-\n copy_term(Term, Copy),\n ground_vars(Copy, Grounded, 0, _).\nground_vars(Var, var, N0, N) :-\n var(Var), !,\n N is N0 + 1.\nground_vars(Term, Grounded, N0, N) :-\n compound(Term), !,\n Term =.. [F|Args],\n ground_vars_list(Args, GArgs, N0, N),\n Grounded =.. [F|GArgs].\nground_vars(Term, Term, N, N) :-\n atomic(Term).\nground_vars_list([], [], N, N).\nground_vars_list([X|Xs], [GX|GXs], N0, N) :-\n ground_vars(X, GX, N0, N1),\n ground_vars_list(Xs, GXs, N1, N).\nbuildSubGraph(Query, Argument) :-\n ground_vars(Query, Normalized),\n \\+ context_check(explored(Normalized)),\n findall(_, (\n findSingleArgument([Query], Argument, Support),\n saveArgument(query, [Query], Argument),\n saveSupports(Argument, Support),\n attack::findPossibleAttackers(Argument, [Conflict]),\n buildSubGraph(Conflict, _)\n ), _),\n context_assert(explored(Query)),\n fail.\nbuildSubGraph(Query, Argument) :- context_check(clause(conc([Query]), argument(Argument))).\nfindSingleArgument(Query, Argument, Support) :-\n findArgument(Query, [], Groundings, [AllRules, TopRule, LastDefRules, DefRules, DefPremises], Support),\n utils::deduplicate(DefRules, CDefRules),\n utils::deduplicate(DefPremises, CDefPremises),\n utils::deduplicate(Groundings, CGroundings),\n Argument = [AllRules, TopRule, Query, CGroundings, [LastDefRules, CDefRules, CDefPremises]].\nfindArgument(Conclusion, _, [], [AllRules, TopRule, LastDefRules, DefRules, DefPremises], []) :-\n parser::premise(Id, Conclusion),\n premiseRules(Id, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]).\nfindArgument(Conclusion, Ids, Conclusions, [AllRules, TopRule, LastDefRules, DefRules, DefPremises], Support) :-\n parser::rule(Id, Premises, Conclusion),\n findPremises(Premises, [Id|Ids], Conclusions, ResRules, Support),\n ruleRules(Id, ResRules, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]).\nfindPremises([], _, [], [[], [], [], []], []).\nfindPremises([H|T], Ids, TConclusions, TRules, TSupport) :-\n parser::prolog([H], Term), !,\n findPremises(T, Ids, TConclusions, TRules, TSupport),\n (callable(Term) -> call(Term); Term).\nfindPremises([H|T], Ids, [H|TConclusions], TRules, TSupport) :-\n parser::contrary([H], _), !,\n findPremises(T, Ids, TConclusions, TRules, TSupport).\nfindPremises([H|T], Ids, [PP|TConclusions], Rules, [[AllRules, P, [PP], HConclusions, [LastDefRules, DefRules, DefPremises]]|TSupport]) :-\n findPremises(T, Ids, TConclusions, TRules, TSupport),\n buildSubGraph(H, [AllRules, P, [PP], HConclusions, [LastDefRules, DefRules, DefPremises]]),\n mergeRules([AllRules, [], LastDefRules, DefRules, DefPremises], TRules, Rules).\npremiseRules(Id, [[Id], none, [], [], [Id]]) :- \\+ parser::check_strict(Id), !.\npremiseRules(Id, [[Id], none, [], [], []]) :- parser::check_strict(Id).\nruleRules(Id, [AllRules, _, DefRules, DefPremises],\n [[Id|AllRules], Id, [Id], [Id|DefRules], DefPremises]) :- \\+ parser::check_strict(Id), !.\nruleRules(Id, [AllRules, LastDefRules, DefRules, DefPremises],\n [[Id|AllRules], Id, LastDefRules, DefRules, DefPremises]) :- parser::check_strict(Id).\nmergeRules([], [AllRules, LastDefRules, DefRules, DefPremises], [AllRules, LastDefRules, DefRules, DefPremises]) :- !.\nmergeRules([HAR, _, HLDR, HDR, HDP], [TAR, TLDR, TDR, TDP], [AR, LDR, DR, DP]) :-\n utils::appendLists([HAR, TAR], AR),\n utils::appendLists([HLDR, TLDR], LDR),\n utils::appendLists([HDR, TDR], DR),\n utils::appendLists([HDP, TDP], DP).\nsaveArgument(T, Conclusion, Argument) :-\n \\+ context_check(clause(conc(Conclusion), argument(Argument))),\n context_assert(newConc(T, Conclusion)),\n utils::hash(argument(Argument), Id),\n context_assert(argument(Argument)),\n context_assert(conc(Conclusion) :- argument(Argument)),\n context_assert(arg(Id) :- argument(Argument)).\nsaveSupports(_, []).\nsaveSupports(A, [B|T]) :-\n saveSupport(B, A),\n saveSupports(A, T).\nsaveSupport(A, B) :-\n \\+ context_check(support(A, B)),\n context_assert(support(A, B)).\nquery(Query, Res) :-\n buildArgument(Query, Argument),\n once(defend(Argument, [], Res)).\nquery(Query, und) :- \\+ buildArgument(Query, _).\ndefend(Argument, _, no) :- context_check(out(Argument)).\ndefend(Argument, _, und) :- context_check(und(Argument)).\ndefend(Argument, _, yes) :- context_check(in(Argument)).\ndefend(Argument, QueryChain, no) :-\n findAttacker(Argument, QueryChain, Attacker, yes),\n once(defend(Attacker, [Argument|QueryChain], X)),\n X == yes,\n bufferResult(Argument, no), !.\ndefend(Argument, QueryChain, Res) :-\n findAttacker(Argument, QueryChain, Attacker, yes),\n once(defend(Attacker, [Argument|QueryChain], X)),\n X == und,\n ambiguityCheck(Argument, Attacker, Res),\n bufferResult(Argument, Res), !.\ncomplementary([_, _, ConclusionA, _, _], [_, _, ConclusionB, _, _]) :-\n attack::expanded_conflict(ConclusionA, ConclusionB).\nambiguityCheck(A, B, no) :- ambiguityBlocking,\n \\+ complementary(A, B),\n context_check(attack(direct, B, A, _)), !.\nambiguityCheck(_, _, und).\ndefend(Argument, QueryChain, und) :-\n findAttacker(Argument, QueryChain, Attacker, no),\n bufferResult(Argument, und), !.\ndefend(Argument, QueryChain, yes) :- bufferResult(Argument, yes).\nbufferResult(Argument, no) :- \\+ context_check(out(Argument)), context_assert(out(Argument)), !.\nbufferResult(Argument, yes) :- \\+ context_check(in(Argument)), context_assert(in(Argument)), !.\nbufferResult(Argument, und) :- \\+ context_check(und(Argument)), context_assert(und(Argument)), !.\nbufferResult(_, _).\nfindAttacker(Target, QueryChain, Attacker, IsValid) :-\n attacker(Target, Attacker, Type),\n bufferAttacker(Attacker, Target, Type),\n detectCycle(Attacker, QueryChain, IsValid).\nbufferAttacker(Attacker, Target, Type) :-\n \\+ context_check(attack(Type, Attacker, Target, none)),\n context_assert(attack(Type, Attacker, Target, none)), !.\nbufferAttacker(_, _, _).\ndetectCycle(Attacker, QueryChain, yes) :- \\+ member(Attacker, QueryChain).\ndetectCycle(Attacker, QueryChain, no) :- member(Attacker, QueryChain).\nattacker([Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type) :-\n member(X, Rules),\n \\+ parser::strict(X),\n attackerOnRule(X, [Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type).\nattacker([Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type) :-\n member(X, Groundings),\n attackerOnTerm(X, [Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type).\nattackerOnRule(Rule, _, Argument, undercut) :-\n parser::undercut(Undercut, Rule),\n buildArgument(Undercut, Argument).\nattackerOnTerm(Term, [TargetRules, TopRule, Conclusion, Groundings, ArgInfo], Attacker, direct) :-\n \\+ parser::contrary(Term, _),\n \\+ strict([TargetRules, TopRule, Conclusion, Groundings, ArgInfo]),\n (graphExtension(rebutRestriction) ->\n (\n getSubArgument(Term, TargetRules, SubArgument),\n rebutRestriction(SubArgument)\n );\n true\n ),\n attack::expanded_conflict(Term, [X]),\n buildArgument(X, Attacker),\n (graphExtension(standardPref) ->\n (\n once(getSubArgument(Term, TargetRules, SubArgument)),\n \\+ superiorArgument(SubArgument, Attacker)\n );\n true\n ).\nattackerOnTerm(Unless, _, Attacker, contrary) :-\n parser::contrary(Unless, X),\n buildArgument(X, Attacker).\nstrict([_, _, _, _, [_, [], []]]).\nrebutRestriction([TargetRules, none, Conclusion, Groundings, ArgInfo]) :-\n graphExtension(rebutRestriction).\nrebutRestriction([TargetRules, TopRule, Conclusion, Groundings, ArgInfo]) :-\n graphExtension(rebutRestriction),\n TopRule \\= none,\n rebutRestriction::restrict([TargetRules, TopRule, Conclusion, Groundings, ArgInfo]).\nrebutRestriction(_) :- \\+ graphExtension(rebutRestriction).\nsuperiorArgument(SubArgument, Attacker) :-\n superiority::superiorArgument(SubArgument, Attacker).\ngetSubArgument(Term, Rules, [SubRules, SubTopRule, SubConclusion, SubGrounds, Info]) :-\n context_check(clause(support(Term), argument([SubRules, SubTopRule, SubConclusion, SubGrounds, Info]))),\n contained(SubRules, Rules).\ncontained([], _).\ncontained([H|T], Target) :- member(H, Target), contained(T, Target).\nbuildArgument(Query, Argument) :-\n \\+ context_check(explored(Query)),\n findall(_, (\n buildSingleArgument([Query], Argument),\n context_assert(argument(Argument))\n ), _),\n context_assert(explored(Query)),\n fail.\nbuildArgument(Query, [R, T, [Query], B, I]) :- context_check(argument([R, T, [Query], B, I])).\nbuildSingleArgument(Query, Argument) :-\n build(Query, [], Groundings, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]),\n utils::deduplicate(DefRules, CDefRules),\n utils::deduplicate(DefPremises, CDefPremises),\n utils::deduplicate(Groundings, CGroundings),\n Argument = [AllRules, TopRule, Query, CGroundings, [LastDefRules, CDefRules, CDefPremises]].\nbuild(Check, _, [], []) :- parser::prolog(Check, Term), (callable(Term) -> call(Term); Term), !.\nbuild(Unless, _, [Unless], []) :- parser::contrary(Unless, _), !.\nbuild(Conclusion, _, [Conclusion], [AllRules, TopRule, LastDefRules, DefRules, DefPremises]) :-\n parser::premise(Id, Conclusion),\n premiseRules(Id, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]),\n context_assert(support(Conclusion) :- argument([AllRules, TopRule, Conclusion, [Conclusion], [LastDefRules, DefRules, DefPremises]])).\nbuild(Conclusion, Ids, [Conclusion|Conclusions], [AllRules, TopRule, LastDefRules, DefRules, DefPremises]) :-\n parser::rule(Id, Premises, Conclusion),\n \\+ member(Id, Ids),\n buildPremises(Premises, [Id|Ids], Conclusions, ResRules),\n ruleRules(Id, ResRules, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]),\n context_assert(support(Conclusion) :- argument([AllRules, TopRule, Conclusion, [Conclusion|Conclusions], [LastDefRules, DefRules, DefPremises]])).\nbuildPremises([], _, [], [[], [], [], []]).\nbuildPremises([H|T], Ids, Conclusions, Rules) :-\n build([H], Ids, HConclusions, HRules),\n buildPremises(T, Ids, TConclusions, TRules),\n utils::appendLists([HConclusions, TConclusions], Conclusions),\n mergeRules(HRules, TRules, Rules).';
4949
+ this.b3p_1 = 'computeStatementAcceptance(Goal, Res) :-\n computeStatementAcceptance(Goal),\n mineResults(Goal, Res).\ncomputeStatementAcceptance(Goal, YesResult, NoResult, UndResult) :-\n computeStatementAcceptance(Goal),\n mineResults(Goal, YesResult, NoResult, UndResult).\ncomputeStatementAcceptance(Goal) :-\n \\+ queryMode,\n abstract:::computeGlobalAcceptance.\ncomputeStatementAcceptance(Goal) :-\n queryMode,\n findall(_, buildSubGraph(Goal, _), _),\n graphBuildMode(X),\n X:::buildAttacks,\n abstract:::modifyGraph,\n abstract:::buildArgumentLabelling,\n abstract:::buildStatementLabelling.\nmineResults(Goal, YesResult, NoResult, UndResult) :-\n findall(Goal, context_check(statIn([Goal])), In),\n findall(Goal, context_check(statOut([Goal])), Out),\n findall(Goal, context_check(statUnd([Goal])), Und),\n utils::sort(In, YesResult),\n utils::sort(Out, NoResult),\n utils::sort(Und, UndResult).\nmineResults(Goal, Result) :-\n findall(in(Goal), context_check(statIn([Goal])), In),\n findall(out(Goal), context_check(statOut([Goal])), Out),\n findall(und(Goal), context_check(statUnd([Goal])), Und),\n utils::appendLists([In, Out, Und], Result).\nground_vars(Term, Grounded) :-\n copy_term(Term, Copy),\n ground_vars(Copy, Grounded, 0, _).\nground_vars(Var, var, N0, N) :-\n var(Var), !,\n N is N0 + 1.\nground_vars(Term, Grounded, N0, N) :-\n compound(Term), !,\n Term =.. [F|Args],\n ground_vars_list(Args, GArgs, N0, N),\n Grounded =.. [F|GArgs].\nground_vars(Term, Term, N, N) :-\n atomic(Term).\nground_vars_list([], [], N, N).\nground_vars_list([X|Xs], [GX|GXs], N0, N) :-\n ground_vars(X, GX, N0, N1),\n ground_vars_list(Xs, GXs, N1, N).\nbuildSubGraph(Query, Argument) :-\n ground_vars(Query, Normalized),\n \\+ context_check(explored(Normalized)),\n findall(_, (\n findSingleArgument([Query], Argument, Support),\n saveArgument(query, [Query], Argument),\n saveSupports(Argument, Support),\n attack::findPossibleAttackers(Argument, [Conflict]),\n buildSubGraph(Conflict, _)\n ), _),\n context_assert(explored(Query)),\n fail.\nbuildSubGraph(Query, Argument) :- context_check(clause(conc([Query]), argument(Argument))).\nfindSingleArgument(Query, Argument, Support) :-\n findArgument(Query, [], Groundings, [AllRules, TopRule, LastDefRules, DefRules, DefPremises], Support),\n utils::deduplicate(DefRules, CDefRules),\n utils::deduplicate(DefPremises, CDefPremises),\n utils::deduplicate(Groundings, CGroundings),\n Argument = [AllRules, TopRule, Query, CGroundings, [LastDefRules, CDefRules, CDefPremises]].\nfindArgument(Conclusion, _, [], [AllRules, TopRule, LastDefRules, DefRules, DefPremises], []) :-\n parser::premise(Id, Conclusion),\n premiseRules(Id, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]).\nfindArgument(Conclusion, Ids, Conclusions, [AllRules, TopRule, LastDefRules, DefRules, DefPremises], Support) :-\n parser::rule(Id, Premises, Conclusion),\n findPremises(Premises, [Id|Ids], Conclusions, ResRules, Support),\n ruleRules(Id, ResRules, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]).\nfindPremises([], _, [], [[], [], [], []], []).\nfindPremises([H|T], Ids, TConclusions, TRules, TSupport) :-\n parser::prolog([H], Term), !,\n findPremises(T, Ids, TConclusions, TRules, TSupport),\n (callable(Term) -> call(Term); Term).\nfindPremises([H|T], Ids, [H|TConclusions], TRules, TSupport) :-\n parser::contrary([H], _), !,\n findPremises(T, Ids, TConclusions, TRules, TSupport).\nfindPremises([H|T], Ids, [PP|TConclusions], Rules, [[AllRules, P, [PP], HConclusions, [LastDefRules, DefRules, DefPremises]]|TSupport]) :-\n findPremises(T, Ids, TConclusions, TRules, TSupport),\n buildSubGraph(H, [AllRules, P, [PP], HConclusions, [LastDefRules, DefRules, DefPremises]]),\n mergeRules([AllRules, [], LastDefRules, DefRules, DefPremises], TRules, Rules).\npremiseRules(Id, [[Id], none, [], [], [Id]]) :- \\+ parser::check_strict(Id), !.\npremiseRules(Id, [[Id], none, [], [], []]) :- parser::check_strict(Id).\nruleRules(Id, [AllRules, _, DefRules, DefPremises],\n [[Id|AllRules], Id, [Id], [Id|DefRules], DefPremises]) :- \\+ parser::check_strict(Id), !.\nruleRules(Id, [AllRules, LastDefRules, DefRules, DefPremises],\n [[Id|AllRules], Id, LastDefRules, DefRules, DefPremises]) :- parser::check_strict(Id).\nmergeRules([], [AllRules, LastDefRules, DefRules, DefPremises], [AllRules, LastDefRules, DefRules, DefPremises]) :- !.\nmergeRules([HAR, _, HLDR, HDR, HDP], [TAR, TLDR, TDR, TDP], [AR, LDR, DR, DP]) :-\n utils::appendLists([HAR, TAR], AR),\n utils::appendLists([HLDR, TLDR], LDR),\n utils::appendLists([HDR, TDR], DR),\n utils::appendLists([HDP, TDP], DP).\nsaveArgument(T, Conclusion, Argument) :-\n \\+ context_check(clause(conc(Conclusion), argument(Argument))),\n context_assert(newConc(T, Conclusion)),\n utils::hash(argument(Argument), Id),\n context_assert(argument(Argument)),\n context_assert(conc(Conclusion) :- argument(Argument)),\n context_assert(arg(Id) :- argument(Argument)).\nsaveSupports(_, []).\nsaveSupports(A, [B|T]) :-\n saveSupport(B, A),\n saveSupports(A, T).\nsaveSupport(A, B) :-\n \\+ context_check(support(A, B)),\n context_assert(support(A, B)).\nquery(Query, Res) :-\n buildArgument(Query, Argument),\n once(defend(Argument, [], Res)).\nquery(Query, und) :- \\+ buildArgument(Query, _).\ndefend(Argument, _, no) :- context_check(out(Argument)).\ndefend(Argument, _, und) :- context_check(und(Argument)).\ndefend(Argument, _, yes) :- context_check(in(Argument)).\ndefend(Argument, QueryChain, no) :-\n findAttacker(Argument, QueryChain, Attacker, yes),\n once(defend(Attacker, [Argument|QueryChain], X)),\n X == yes,\n bufferResult(Argument, no), !.\ndefend(Argument, QueryChain, Res) :-\n findAttacker(Argument, QueryChain, Attacker, yes),\n once(defend(Attacker, [Argument|QueryChain], X)),\n X == und,\n ambiguityCheck(Argument, Attacker, Res),\n bufferResult(Argument, Res), !.\ncomplementary([_, _, ConclusionA, _, _], [_, _, ConclusionB, _, _]) :-\n attack::expanded_conflict(ConclusionA, ConclusionB).\nambiguityCheck(A, B, no) :- ambiguityBlocking,\n \\+ complementary(A, B),\n context_check(attack(direct, B, A, _)), !.\nambiguityCheck(_, _, und).\ndefend(Argument, QueryChain, und) :-\n findAttacker(Argument, QueryChain, Attacker, no),\n bufferResult(Argument, und), !.\ndefend(Argument, QueryChain, yes) :- bufferResult(Argument, yes).\nbufferResult(Argument, no) :- \\+ context_check(out(Argument)), context_assert(out(Argument)), !.\nbufferResult(Argument, yes) :- \\+ context_check(in(Argument)), context_assert(in(Argument)), !.\nbufferResult(Argument, und) :- \\+ context_check(und(Argument)), context_assert(und(Argument)), !.\nbufferResult(_, _).\nfindAttacker(Target, QueryChain, Attacker, IsValid) :-\n attacker(Target, Attacker, Type),\n bufferAttacker(Attacker, Target, Type),\n detectCycle(Attacker, QueryChain, IsValid).\nbufferAttacker(Attacker, Target, Type) :-\n \\+ context_check(attack(Type, Attacker, Target, none)),\n context_assert(attack(Type, Attacker, Target, none)), !.\nbufferAttacker(_, _, _).\ndetectCycle(Attacker, QueryChain, yes) :- \\+ member(Attacker, QueryChain).\ndetectCycle(Attacker, QueryChain, no) :- member(Attacker, QueryChain).\nattacker([Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type) :-\n member(X, Rules),\n \\+ parser::strict(X),\n attackerOnRule(X, [Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type).\nattacker([Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type) :-\n member(X, Groundings),\n attackerOnTerm(X, [Rules, TopRule, Conclusion, Groundings, ArgInfo], Argument, Type).\nattackerOnRule(Rule, _, Argument, undercut) :-\n parser::undercut(Undercut, Rule),\n buildArgument(Undercut, Argument).\nattackerOnTerm(Term, [TargetRules, TopRule, Conclusion, Groundings, ArgInfo], Attacker, direct) :-\n \\+ parser::contrary(Term, _),\n \\+ strict([TargetRules, TopRule, Conclusion, Groundings, ArgInfo]),\n (graphExtension(rebutRestriction) ->\n (\n getSubArgument(Term, TargetRules, SubArgument),\n rebutRestriction(SubArgument)\n );\n true\n ),\n attack::expanded_conflict(Term, [X]),\n buildArgument(X, Attacker),\n (graphExtension(standardPref) ->\n (\n once(getSubArgument(Term, TargetRules, SubArgument)),\n \\+ superiorArgument(SubArgument, Attacker)\n );\n true\n ).\nattackerOnTerm(Unless, _, Attacker, contrary) :-\n parser::contrary(Unless, X),\n buildArgument(X, Attacker).\nstrict([_, _, _, _, [_, [], []]]).\nrebutRestriction([TargetRules, none, Conclusion, Groundings, ArgInfo]) :-\n graphExtension(rebutRestriction).\nrebutRestriction([TargetRules, TopRule, Conclusion, Groundings, ArgInfo]) :-\n graphExtension(rebutRestriction),\n TopRule \\= none,\n rebutRestriction::restrict([TargetRules, TopRule, Conclusion, Groundings, ArgInfo]).\nrebutRestriction(_) :- \\+ graphExtension(rebutRestriction).\nsuperiorArgument(SubArgument, Attacker) :-\n superiority::superiorArgument(SubArgument, Attacker).\ngetSubArgument(Term, Rules, [SubRules, SubTopRule, SubConclusion, SubGrounds, Info]) :-\n context_check(clause(support(Term), argument([SubRules, SubTopRule, SubConclusion, SubGrounds, Info]))),\n contained(SubRules, Rules).\ncontained([], _).\ncontained([H|T], Target) :- member(H, Target), contained(T, Target).\nbuildArgument(Query, Argument) :-\n \\+ context_check(explored(Query)),\n findall(_, (\n buildSingleArgument([Query], Argument),\n context_assert(argument(Argument))\n ), _),\n context_assert(explored(Query)),\n fail.\nbuildArgument(Query, [R, T, [Query], B, I]) :- context_check(argument([R, T, [Query], B, I])).\nbuildSingleArgument(Query, Argument) :-\n build(Query, [], Groundings, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]),\n utils::deduplicate(DefRules, CDefRules),\n utils::deduplicate(DefPremises, CDefPremises),\n utils::deduplicate(Groundings, CGroundings),\n Argument = [AllRules, TopRule, Query, CGroundings, [LastDefRules, CDefRules, CDefPremises]].\nbuild(Check, _, [], []) :- parser::prolog(Check, Term), (callable(Term) -> call(Term); Term), !.\nbuild(Unless, _, [Unless], []) :- parser::contrary(Unless, _), !.\nbuild(Conclusion, _, [Conclusion], [AllRules, TopRule, LastDefRules, DefRules, DefPremises]) :-\n parser::premise(Id, Conclusion),\n premiseRules(Id, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]),\n context_assert(support(Conclusion) :- argument([AllRules, TopRule, Conclusion, [Conclusion], [LastDefRules, DefRules, DefPremises]])).\nbuild(Conclusion, Ids, [Conclusion|Conclusions], [AllRules, TopRule, LastDefRules, DefRules, DefPremises]) :-\n parser::rule(Id, Premises, Conclusion),\n \\+ member(Id, Ids),\n buildPremises(Premises, [Id|Ids], Conclusions, ResRules),\n ruleRules(Id, ResRules, [AllRules, TopRule, LastDefRules, DefRules, DefPremises]),\n context_assert(support(Conclusion) :- argument([AllRules, TopRule, Conclusion, [Conclusion|Conclusions], [LastDefRules, DefRules, DefPremises]])).\nbuildPremises([], _, [], [[], [], [], []]).\nbuildPremises([H|T], Ids, Conclusions, Rules) :-\n build([H], Ids, HConclusions, HRules),\n buildPremises(T, Ids, TConclusions, TRules),\n utils::appendLists([HConclusions, TConclusions], Conclusions),\n mergeRules(HRules, TRules, Rules).';
4587
4950
  }
4588
4951
  var QueryMode_instance_0;
4589
4952
  function QueryMode_getInstance_0() {
4590
4953
  return QueryMode_instance_0;
4591
4954
  }
4592
4955
  function RuleTranslator() {
4593
- this.a3n_1 = "/*\n * Main directive. Find all the rules in the theory in the format (Name : Preconditions => Conclusion)\n * or (Name : Effects) and then if:\n * - It is a standard rule, translate it in the standard format (rule([Name, Preconditions, Conclusions]));\n * - It is a bp rule, translate it to (abstractBp([Effects]))\n * During the process, clean them from the unallowed symbols (-, o, p).\n */\nconvertAllRules(ArgRules) :-\n defeasibleRules(DefeasibleRules),\n strictRules(StrictRules, RulesIds),\n ordinaryPremises(Premises),\n axiomPremises(Axioms, AxiomsIds),\n specialRules(SpecialRules),\n utils::appendLists([DefeasibleRules, StrictRules, Premises, Axioms], Rules),\n rule_to_clause(Rules, Clauses),\n findall(sup(X, Y), sup(X, Y), Sup),\n utils::appendLists([Clauses, AxiomsIds, RulesIds, Sup, SpecialRules], ArgRules),\n utils::assert_all(ArgRules), !.\ndefeasibleRules(DefeasibleRules) :-\n findall([RuleName, Preconditions, Effect], (RuleName : Preconditions => Effect), DefeasibleRulesOld),\n prologDefeasibleRules(DefeasibleRulesNew),\n utils::append_fast(DefeasibleRulesOld, DefeasibleRulesNew, DefeasibleRules).\nstrictRules(CtrRules, Ids) :-\n findall([RuleName, Preconditions, Effect], (RuleName : Preconditions -> Effect), StrictRulesOld),\n prologStrictRules(StrictRulesNew),\n utils::append_fast(StrictRulesOld, StrictRulesNew, StrictRules),\n transpose(StrictRules, StrictRules, CtrRules),\n extract_id(CtrRules, Ids).\nordinaryPremises(Premises) :-\n findall([RuleName, Effect], ((RuleName :=> Effect), atom(RuleName)), PremisesOld),\n prologPremises(PremisesNew),\n utils::append_fast(PremisesOld, PremisesNew, Premises).\naxiomPremises(Axioms, Ids) :-\n findall([RuleName, Effect], ((RuleName :-> Effect), atom(RuleName)), AxiomsOld),\n prologAxioms(AxiomsNew),\n utils::append_fast(AxiomsOld, AxiomsNew, Axioms),\n extract_id(Axioms, Ids).\nspecialRules(SpecialRules) :-\n bpsNew(SpecialRules).\ntranspose(_, CtrRules, CtrRules) :- \\+ autoTransposition, !.\ntranspose([], CtrRules, CtrRules).\ntranspose([H|T], TempCtrRules, CtrRules) :-\n transpose(T, TempCtrRules, CR),\n findall(TrH, transposition(H, TrH), Tran),\n mergeCtrRules(CR, Tran, CtrRules).\nmergeCtrRules(All, ToMerge, X) :-\n utils::append_fast(All, ToMerge, XT),\n deduplicate(XT, X).\ndeduplicate([], []).\ndeduplicate([[RN,A,B]|T], X) :- deduplicate(T, TT), (member([RN,_,_], TT) -> X = TT; X = [[RN,A,B]|TT]). \ntransposition([Id, Prec, Effect], [Id, Prec, Effect]).\ntransposition([Id, Prec, Effect], [NewId, NewPrec ,XNegated]) :-\n compound(Prec),\n tuple_to_list(Prec, LPrec),!,\n transposition_sequential(LPrec, LPrec, Effect, Id, [], NewPrec, XNegated, NewId).\ntransposition([Id, Prec, Effect], [NewId, EffectNegated ,XNegated]) :-\n \\+ compound(Prec),\n Prec \\== [],\n prologEscape(Prec),\n negate(Prec, XNegated),\n negate(Effect, EffectNegated),\n atom_concat(Id, '_i', NewId).\ntransposition_sequential(LPrec, [H|T], Effect, Id, Skipped, NewPrec, XNegated, NewId) :-\n transposition_sequential(LPrec, T, Effect, Id, [H|Skipped], NewPrec, XNegated, NewId).\ntransposition_sequential(LPrec, [X|T], Effect, Id, Skipped, NewPrec, XNegated, NewId) :-\n prologEscape(X),\n utils::append_fast(Skipped, T, CleanedPrec),\n negate(X, XNegated),\n negate(Effect, EffectNegated),\n list_to_tuple([EffectNegated|CleanedPrec], NewPrec),\n newIdentifier(Skipped, Id, NewId).\nnewIdentifier(List, OldId, NewId) :-\n modifier(List, Mod),\n atom_concat(OldId, Mod, NewId).\nmodifier([], '_i').\nmodifier([_|Tail], Index):-\n modifier(Tail, Index1),\n atom_concat(Index1, 'i', Index).\nnegate(X, Arg) :-\n functor(X, '-', _) -> (\n arg(1, X, Arg));\n functor(X, 'p', _) -> (\n arg(1, X, PX),\n (functor(PX, '-', _) -> (\n arg(1, PX, PNX),\n Arg = o(PNX)\n );\n Arg = o(-(PX))));\n Arg = -(X).\nprologEscape(X) :- \\+ functor(X, 'prolog', _), \\+ functor(X, '~', _).\n/*\n * Standard rules (RuleName : Preconditions => Effects)\n * Special rules (RuleName : Effects)\n */\nconvertAllRules([], []).\nconvertAllRules([[H,P,E]|T], [R|Rules]) :- convertRule(H, P, E, R), convertAllRules(T, Rules).\nconvertAllRules([[H,E]|T], [R|Rules]) :- convertRule(H, E, R), convertAllRules(T, Rules).\n/*\n * Convert the given rule to the standard format\n * Example:\n * r2: followedGuidelines(X), doctor(X) => -liable(X)\n * rule([r2,[[followedGuidelines(X_e4149)],[doctor(X_e4149)]],[neg,liable(X_e4149)]]).\n */\nconvertRule(RuleName, Preconditions, Effects, rule(List)) :-\n tuple_to_list(Preconditions, Lprecond),\n tuple_to_list(Effects, Leffects),\n check_modifiers_in_list(preconditions, Lprecond, LprecondChecked),\n check_modifiers_in_list(effects, Leffects, LeffectsChecked),\n flatten_first_level(LeffectsChecked, LeffectsCheckedFlattened),\n List = [RuleName, LprecondChecked, LeffectsCheckedFlattened], !.\n/*\n * Convert the given special rule\n * Example:\n * bp(-liable(X)).\n * abastractBp([[neg, liable(X_e4149)]]).\n */\nconvertRule(bps, Effects, abstractBp(Checked)) :-\n functor(Effects, 'bp', _),\n Effects =.. L,\n removehead(L, LC),\n check_modifiers_in_list(effects, LC, Checked), !.\nconvertRule(Name, Effects, premise([Name, LeffectsCheckedFlattened])) :-\n tuple_to_list(Effects, Leffects),\n check_modifiers_in_list(effects, Leffects, LeffectsChecked),\n flatten_first_level(LeffectsChecked, LeffectsCheckedFlattened).\n/*\n * Find negations(-), obligations(o), permissions(p) on a list of preconditions/effects and\n * raplace them with the assigned literal (neg, obl, perm)\n */\ncheck_modifiers_in_list(MODE, [], []) :- !.\ncheck_modifiers_in_list(MODE, [H|T], L) :- H == [], L = [], !.\ncheck_modifiers_in_list(MODE, [H|T], R) :- H \\== [],\n check_modifiers_once(H, LH),\n check_modifiers_in_list(MODE, T, LT),\n utils::append_fast([LH], LT, L),\n R = L.\ncheck_modifiers_once(H, List) :- once(check_modifiers(H, List)).\ncheck_modifiers([], []).\ncheck_modifiers(H, List) :-\n functor(H, '-', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lobl),\n utils::append_fast([neg], Lobl, Lf),\n List = Lf);\n functor(H, 'o', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lobl),\n List = [obl|[Lobl]]);\n functor(H, 'p', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lper),\n List = [perm|[Lper]]);\n functor(H, '~', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lper),\n List = [unless|[Lper]]);\n functor(H, 'bp', _) -> (\n H =.. [_|Arg],\n check_modifiers_in_list(effects, Arg, Lper),\n List = [bp|[Lper]]);\n List = [H].\nlist_to_tuple([H], (H)) :- !.\nlist_to_tuple([H|T], (H,TT)) :- list_to_tuple(T,TT).\n/*\n * Replace all the occurences of a given element with the given argument\n */\nreplace(_, _, [],[]) :- !.\nreplace(O, R, [O|T], [R|T2]) :- replace(O, R, T, T2), !.\nreplace(O, R, [H|T], [H|T2]) :- H \\= O, replace(O, R, T, T2).\nflatten_first_level([X], X) :- !.\nflatten_first_level.\nremovehead([_|Tail], Tail).\nin(A, A) :- nonvar(A), A \\= (_ , _), !.\nin(A, (A, _)) :- !.\nin(A, (_ , Cs)) :- in(A, Cs).\ncheck_admissibility(preconditions, H, LH) :-\n \\+ defeasible_admissible(LH),\n throw(['Premise ', H, ' is not a well formed member of the argumentation language.']).\ncheck_admissibility(effects, H, LH) :-\n \\+ admissible(LH),\n throw(['Conclusion ', H, ' is not a well formed member of the argumentation language.']).\ncheck_admissibility(_, _, _).\ndefeasible_admissible([unless, Term]) :- admissible(Term).\ndefeasible_admissible(Term) :- admissible(Term).\nadmissible([neg, bp, Term]) :- admissible_terms_complete(Term).\nadmissible([bp, Term]) :- admissible_terms_complete(Term).\nadmissible([neg, Term]) :- admissible_term(Term).\nadmissible([obl, [Term]]) :- admissible_term(Term).\nadmissible([obl, [neg, Term]]) :- admissible_term(Term).\nadmissible([neg, obl, [Term]]) :- admissible_term(Term).\nadmissible([neg, obl, [neg, Term]]) :- admissible_term(Term).\nadmissible([perm, [Term]]) :- admissible_term(Term).\nadmissible([perm, [neg, Term]]) :- admissible_term(Term).\nadmissible([Term]) :- admissible_term(Term).\nadmissible_term(Term) :-\n atomic(Term),\n Term \\== neg,\n Term \\== obl,\n Term \\== perm,\n Term \\== unless,\n Term \\== bp.\nadmissible_term(Term) :- var(Term).\nadmissible_term(Term) :-\n compound(Term),\n \\+ functor(Term, 'o', _),\n \\+ functor(Term, 'p', _),\n \\+ functor(Term, '-', _),\n \\+ functor(Term, '~', _),\n \\+ functor(Term, 'bp', _),\n Term =.. [_|Args],\n admissible_terms(Args).\nadmissible_terms([]).\nadmissible_terms([H|T]) :-\n admissible_term(H),\n admissible_terms(T).\nadmissible_terms_complete([]).\nadmissible_terms_complete([H|T]) :-\n admissible(H),\n admissible_terms_complete(T).\nrule(Id, PP, [Conclusion]) :- context_check(clause(rl(Conclusion), [Id, Premises, Conclusion])), tuple_to_list(Premises, P), ff(P, PP).\npremise(Id, [Conclusion]) :- context_check(clause(rl(Conclusion), [Id, Conclusion])).\ncheck_strict(Id) :- context_check(strict(Id)).\nprolog([prolog(Term)], Term).\ncontrary([~(Term)], Term).\nundercut(undercut(Rule), Rule).\nsuperiority(sup(Id1, Id2), Id1, Id2).\n/*\n * Convert the given tuple to list\n */\ntuple_to_list(A,[A]) :- nonvar(A), A \\= (_ , _), !.\ntuple_to_list((A,B),L) :-\n tuple_to_list(A, La),\n tuple_to_list(B, Lb),\n utils::append_fast(La, Lb,L).\nff([[]], []) :- !.\nff([[X]], [X]) :- !.\nff(X, X).\nclassic_rule(X, [applicable(X)|Y], Z) :- metaRules, !, rule(X, Y, Z).\nclassic_rule(X, Y, Z) :- rule(X, Y, Z).\nclassic_rule(X, Y) :- premise(X, Y).\nclassic_conflict([A], [B], C) :- metaConflicts,\n context_check(clause(conc([conflict(A, B, C)]), _)).\nclassic_conflict([A], [B]) :- metaConflicts,\n context_check(clause(conc([conflict(A, B)]), _)).\nclassic_conflict(A, B, C) :-\n \\+ metaConflicts,\n member(conflict(A, B, C), [\n conflict([Atom], [-Atom], (Atom \\= -_)),\n conflict([-Atom], [Atom], true),\n conflict([o(Atom)], [o(-Atom)], (Atom \\= -_)), % O(x) <-> O(-x)\n conflict([o(-Atom)], [o(Atom)], true),\n conflict([p(Atom)], [o(-Atom)], (Atom \\= -_)), % P(x) <-> O(-x)\n conflict([o(-Atom)], [p(Atom)], true),\n conflict([o(Atom)], [p(-Atom)], (Atom \\= -_)), % O(x) <-> P(-x)\n conflict([p(-Atom)], [o(Atom)], true),\n conflict([o(Atom)], [-p(Atom)], true), % O(x) <-> O(-x) (-P(x))\n conflict([-p(Atom)], [o(Atom)], true),\n conflict([sup(X, Y)], [sup(Y, X)], true)\n ]).\nclassic_conflict(A, B, C) :-\n \\+ metaConflicts,\n conflict(A, B, C).\nclassic_conflict(A, B) :-\n \\+ metaConflicts,\n conflict(A, B).";
4956
+ this.y3o_1 = "/*\n * Main directive. Find all the rules in the theory in the format (Name : Preconditions => Conclusion)\n * or (Name : Effects) and then if:\n * - It is a standard rule, translate it in the standard format (rule([Name, Preconditions, Conclusions]));\n * - It is a bp rule, translate it to (abstractBp([Effects]))\n * During the process, clean them from the unallowed symbols (-, o, p).\n */\nconvertAllRules(ArgRules) :-\n defeasibleRules(DefeasibleRules),\n strictRules(StrictRules, RulesIds),\n ordinaryPremises(Premises),\n axiomPremises(Axioms, AxiomsIds),\n specialRules(SpecialRules),\n utils::appendLists([DefeasibleRules, StrictRules, Premises, Axioms], Rules),\n rule_to_clause(Rules, Clauses),\n findall(sup(X, Y), sup(X, Y), Sup),\n utils::appendLists([Clauses, AxiomsIds, RulesIds, Sup, SpecialRules], ArgRules),\n utils::assert_all(ArgRules), !.\ndefeasibleRules(DefeasibleRules) :-\n findall([RuleName, Preconditions, Effect], (RuleName : Preconditions => Effect), DefeasibleRulesOld),\n prologDefeasibleRules(DefeasibleRulesNew),\n utils::append_fast(DefeasibleRulesOld, DefeasibleRulesNew, DefeasibleRules).\nstrictRules(CtrRules, Ids) :-\n findall([RuleName, Preconditions, Effect], (RuleName : Preconditions -> Effect), StrictRulesOld),\n prologStrictRules(StrictRulesNew),\n utils::append_fast(StrictRulesOld, StrictRulesNew, StrictRules),\n transpose(StrictRules, StrictRules, CtrRules),\n extract_id(CtrRules, Ids).\nordinaryPremises(Premises) :-\n findall([RuleName, Effect], ((RuleName :=> Effect), atom(RuleName)), PremisesOld),\n prologPremises(PremisesNew),\n utils::append_fast(PremisesOld, PremisesNew, Premises).\naxiomPremises(Axioms, Ids) :-\n findall([RuleName, Effect], ((RuleName :-> Effect), atom(RuleName)), AxiomsOld),\n prologAxioms(AxiomsNew),\n utils::append_fast(AxiomsOld, AxiomsNew, Axioms),\n extract_id(Axioms, Ids).\nspecialRules(SpecialRules) :-\n bpsNew(SpecialRules).\ntranspose(_, CtrRules, CtrRules) :- \\+ autoTransposition, !.\ntranspose([], CtrRules, CtrRules).\ntranspose([H|T], TempCtrRules, CtrRules) :-\n transpose(T, TempCtrRules, CR),\n findall(TrH, transposition(H, TrH), Tran),\n mergeCtrRules(CR, Tran, CtrRules).\nmergeCtrRules(All, ToMerge, X) :-\n utils::append_fast(All, ToMerge, XT),\n deduplicate(XT, X).\ndeduplicate([], []).\ndeduplicate([[RN,A,B]|T], X) :- deduplicate(T, TT), (member([RN,_,_], TT) -> X = TT; X = [[RN,A,B]|TT]). \ntransposition([Id, Prec, Effect], [Id, Prec, Effect]).\ntransposition([Id, Prec, Effect], [NewId, NewPrec ,XNegated]) :-\n compound(Prec),\n tuple_to_list(Prec, LPrec),!,\n transposition_sequential(LPrec, LPrec, Effect, Id, [], NewPrec, XNegated, NewId).\ntransposition([Id, Prec, Effect], [NewId, EffectNegated ,XNegated]) :-\n \\+ compound(Prec),\n Prec \\== [],\n prologEscape(Prec),\n negate(Prec, XNegated),\n negate(Effect, EffectNegated),\n atom_concat(Id, '_i', NewId).\ntransposition_sequential(LPrec, [H|T], Effect, Id, Skipped, NewPrec, XNegated, NewId) :-\n transposition_sequential(LPrec, T, Effect, Id, [H|Skipped], NewPrec, XNegated, NewId).\ntransposition_sequential(LPrec, [X|T], Effect, Id, Skipped, NewPrec, XNegated, NewId) :-\n prologEscape(X),\n utils::append_fast(Skipped, T, CleanedPrec),\n negate(X, XNegated),\n negate(Effect, EffectNegated),\n list_to_tuple([EffectNegated|CleanedPrec], NewPrec),\n newIdentifier(Skipped, Id, NewId).\nnewIdentifier(List, OldId, NewId) :-\n modifier(List, Mod),\n atom_concat(OldId, Mod, NewId).\nmodifier([], '_i').\nmodifier([_|Tail], Index):-\n modifier(Tail, Index1),\n atom_concat(Index1, 'i', Index).\nnegate(X, Arg) :-\n functor(X, '-', _) -> (\n arg(1, X, Arg));\n functor(X, 'p', _) -> (\n arg(1, X, PX),\n (functor(PX, '-', _) -> (\n arg(1, PX, PNX),\n Arg = o(PNX)\n );\n Arg = o(-(PX))));\n Arg = -(X).\nprologEscape(X) :- \\+ functor(X, 'prolog', _), \\+ functor(X, '~', _).\n/*\n * Standard rules (RuleName : Preconditions => Effects)\n * Special rules (RuleName : Effects)\n */\nconvertAllRules([], []).\nconvertAllRules([[H,P,E]|T], [R|Rules]) :- convertRule(H, P, E, R), convertAllRules(T, Rules).\nconvertAllRules([[H,E]|T], [R|Rules]) :- convertRule(H, E, R), convertAllRules(T, Rules).\n/*\n * Convert the given rule to the standard format\n * Example:\n * r2: followedGuidelines(X), doctor(X) => -liable(X)\n * rule([r2,[[followedGuidelines(X_e4149)],[doctor(X_e4149)]],[neg,liable(X_e4149)]]).\n */\nconvertRule(RuleName, Preconditions, Effects, rule(List)) :-\n tuple_to_list(Preconditions, Lprecond),\n tuple_to_list(Effects, Leffects),\n check_modifiers_in_list(preconditions, Lprecond, LprecondChecked),\n check_modifiers_in_list(effects, Leffects, LeffectsChecked),\n flatten_first_level(LeffectsChecked, LeffectsCheckedFlattened),\n List = [RuleName, LprecondChecked, LeffectsCheckedFlattened], !.\n/*\n * Convert the given special rule\n * Example:\n * bp(-liable(X)).\n * abastractBp([[neg, liable(X_e4149)]]).\n */\nconvertRule(bps, Effects, abstractBp(Checked)) :-\n functor(Effects, 'bp', _),\n Effects =.. L,\n removehead(L, LC),\n check_modifiers_in_list(effects, LC, Checked), !.\nconvertRule(Name, Effects, premise([Name, LeffectsCheckedFlattened])) :-\n tuple_to_list(Effects, Leffects),\n check_modifiers_in_list(effects, Leffects, LeffectsChecked),\n flatten_first_level(LeffectsChecked, LeffectsCheckedFlattened).\n/*\n * Find negations(-), obligations(o), permissions(p) on a list of preconditions/effects and\n * raplace them with the assigned literal (neg, obl, perm)\n */\ncheck_modifiers_in_list(MODE, [], []) :- !.\ncheck_modifiers_in_list(MODE, [H|T], L) :- H == [], L = [], !.\ncheck_modifiers_in_list(MODE, [H|T], R) :- H \\== [],\n check_modifiers_once(H, LH),\n check_modifiers_in_list(MODE, T, LT),\n utils::append_fast([LH], LT, L),\n R = L.\ncheck_modifiers_once(H, List) :- once(check_modifiers(H, List)).\ncheck_modifiers([], []).\ncheck_modifiers(H, List) :-\n functor(H, '-', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lobl),\n utils::append_fast([neg], Lobl, Lf),\n List = Lf);\n functor(H, 'o', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lobl),\n List = [obl|[Lobl]]);\n functor(H, 'p', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lper),\n List = [perm|[Lper]]);\n functor(H, '~', _) -> (\n arg(1, H, Arg),\n check_modifiers_once(Arg, Lper),\n List = [unless|[Lper]]);\n functor(H, 'bp', _) -> (\n H =.. [_|Arg],\n check_modifiers_in_list(effects, Arg, Lper),\n List = [bp|[Lper]]);\n List = [H].\nlist_to_tuple([H], (H)) :- !.\nlist_to_tuple([H|T], (H,TT)) :- list_to_tuple(T,TT).\n/*\n * Replace all the occurences of a given element with the given argument\n */\nreplace(_, _, [],[]) :- !.\nreplace(O, R, [O|T], [R|T2]) :- replace(O, R, T, T2), !.\nreplace(O, R, [H|T], [H|T2]) :- H \\= O, replace(O, R, T, T2).\nflatten_first_level([X], X) :- !.\nflatten_first_level.\nremovehead([_|Tail], Tail).\nin(A, A) :- nonvar(A), A \\= (_ , _), !.\nin(A, (A, _)) :- !.\nin(A, (_ , Cs)) :- in(A, Cs).\ncheck_admissibility(preconditions, H, LH) :-\n \\+ defeasible_admissible(LH),\n throw(['Premise ', H, ' is not a well formed member of the argumentation language.']).\ncheck_admissibility(effects, H, LH) :-\n \\+ admissible(LH),\n throw(['Conclusion ', H, ' is not a well formed member of the argumentation language.']).\ncheck_admissibility(_, _, _).\ndefeasible_admissible([unless, Term]) :- admissible(Term).\ndefeasible_admissible(Term) :- admissible(Term).\nadmissible([neg, bp, Term]) :- admissible_terms_complete(Term).\nadmissible([bp, Term]) :- admissible_terms_complete(Term).\nadmissible([neg, Term]) :- admissible_term(Term).\nadmissible([obl, [Term]]) :- admissible_term(Term).\nadmissible([obl, [neg, Term]]) :- admissible_term(Term).\nadmissible([neg, obl, [Term]]) :- admissible_term(Term).\nadmissible([neg, obl, [neg, Term]]) :- admissible_term(Term).\nadmissible([perm, [Term]]) :- admissible_term(Term).\nadmissible([perm, [neg, Term]]) :- admissible_term(Term).\nadmissible([Term]) :- admissible_term(Term).\nadmissible_term(Term) :-\n atomic(Term),\n Term \\== neg,\n Term \\== obl,\n Term \\== perm,\n Term \\== unless,\n Term \\== bp.\nadmissible_term(Term) :- var(Term).\nadmissible_term(Term) :-\n compound(Term),\n \\+ functor(Term, 'o', _),\n \\+ functor(Term, 'p', _),\n \\+ functor(Term, '-', _),\n \\+ functor(Term, '~', _),\n \\+ functor(Term, 'bp', _),\n Term =.. [_|Args],\n admissible_terms(Args).\nadmissible_terms([]).\nadmissible_terms([H|T]) :-\n admissible_term(H),\n admissible_terms(T).\nadmissible_terms_complete([]).\nadmissible_terms_complete([H|T]) :-\n admissible(H),\n admissible_terms_complete(T).\nrule(Id, PP, [Conclusion]) :- context_check(clause(rl(Conclusion), [Id, Premises, Conclusion])), tuple_to_list(Premises, P), ff(P, PP).\npremise(Id, [Conclusion]) :- context_check(clause(rl(Conclusion), [Id, Conclusion])).\ncheck_strict(Id) :- context_check(strict(Id)).\nprolog([prolog(Term)], Term).\ncontrary([~(Term)], Term).\nundercut(undercut(Rule), Rule).\nsuperiority(sup(Id1, Id2), Id1, Id2).\n/*\n * Convert the given tuple to list\n */\ntuple_to_list(A,[A]) :- nonvar(A), A \\= (_ , _), !.\ntuple_to_list((A,B),L) :-\n tuple_to_list(A, La),\n tuple_to_list(B, Lb),\n utils::append_fast(La, Lb,L).\nff([[]], []) :- !.\nff([[X]], [X]) :- !.\nff(X, X).\nclassic_rule(X, [applicable(X)|Y], Z) :- metaRules, !, rule(X, Y, Z).\nclassic_rule(X, Y, Z) :- rule(X, Y, Z).\nclassic_rule(X, Y) :- premise(X, Y).\nclassic_conflict([A], [B], C) :- metaConflicts,\n context_check(clause(conc([conflict(A, B, C)]), _)).\nclassic_conflict([A], [B]) :- metaConflicts,\n context_check(clause(conc([conflict(A, B)]), _)).\nclassic_conflict(A, B, C) :-\n \\+ metaConflicts,\n member(conflict(A, B, C), [\n conflict([Atom], [-Atom], (Atom \\= -_)),\n conflict([-Atom], [Atom], true),\n conflict([o(Atom)], [o(-Atom)], (Atom \\= -_)), % O(x) <-> O(-x)\n conflict([o(-Atom)], [o(Atom)], true),\n conflict([p(Atom)], [o(-Atom)], (Atom \\= -_)), % P(x) <-> O(-x)\n conflict([o(-Atom)], [p(Atom)], true),\n conflict([o(Atom)], [p(-Atom)], (Atom \\= -_)), % O(x) <-> P(-x)\n conflict([p(-Atom)], [o(Atom)], true),\n conflict([o(Atom)], [-p(Atom)], true), % O(x) <-> O(-x) (-P(x))\n conflict([-p(Atom)], [o(Atom)], true),\n conflict([sup(X, Y)], [sup(Y, X)], true)\n ]).\nclassic_conflict(A, B, C) :-\n \\+ metaConflicts,\n conflict(A, B, C).\nclassic_conflict(A, B) :-\n \\+ metaConflicts,\n conflict(A, B).";
4594
4957
  }
4595
4958
  var RuleTranslator_instance;
4596
4959
  function RuleTranslator_getInstance() {
4597
4960
  return RuleTranslator_instance;
4598
4961
  }
4599
4962
  function StatementLabelling() {
4600
- this.w3m_1 = 'statementLabelling :-\n findall(_, (\n context_check(in([_, _, Conc, _, _])),\n \\+ context_check(statIn(Conc)),\n context_assert(statIn(Conc))\n ), _),\n findall(_, (\n context_check(out([_, _, Conc, _, _])),\n \\+ context_check(statIn(Conc)),\n \\+ context_check(statOut(Conc)),\n context_assert(statOut(Conc))\n ), _),\n findall(_, (\n context_check(und([_, _, Conc, _, _])),\n \\+ context_check(statIn(Conc)),\n \\+ context_check(statOut(Conc)),\n \\+ context_check(statUnd(Conc)),\n context_assert(statUnd(Conc))\n ), _).';
4963
+ this.u3o_1 = 'statementLabelling :-\n findall(_, (\n context_check(in([_, _, Conc, _, _])),\n \\+ context_check(statIn(Conc)),\n context_assert(statIn(Conc))\n ), _),\n findall(_, (\n context_check(out([_, _, Conc, _, _])),\n \\+ context_check(statIn(Conc)),\n \\+ context_check(statOut(Conc)),\n context_assert(statOut(Conc))\n ), _),\n findall(_, (\n context_check(und([_, _, Conc, _, _])),\n \\+ context_check(statIn(Conc)),\n \\+ context_check(statOut(Conc)),\n \\+ context_check(statUnd(Conc)),\n context_assert(statUnd(Conc))\n ), _).';
4601
4964
  }
4602
4965
  var StatementLabelling_instance;
4603
4966
  function StatementLabelling_getInstance() {
4604
4967
  return StatementLabelling_instance;
4605
4968
  }
4606
4969
  function SuperiorityRelation() {
4607
- this.e3n_1 = 'superiorArgument(A, B) :- superiorArgumentSupportBuffered(A, B, _).\nsuperiorArgument(A, B, SupSet) :- superiorArgumentSupportBuffered(A, B, SupSet).\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n context_check(superior(A, B, SupSet, true)), !.\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n context_check(superior(A, B, SupSet, false)),\n fail, !.\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n \\+ context_check(superior(A, B, _, _)),\n superiorArgumentSupport(A, B, SupSet),\n context_assert(superior(A, B, SupSet, true)), !.\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n \\+ cache_check(superior(A, B, _, _)),\n context_assert(superior(A, B, [], false)),\n fail, !.\nsuperiorArgumentSupport([_, _, _, _, [LastDefRulesA, DefRulesA, DefPremisesA]], [_, _, _, _, [LastDefRulesB, DefRulesB, DefPremisesB]], SupSet) :-\n\tsuperiorArgumentSupport(LastDefRulesA, DefRulesA, DefPremisesA, LastDefRulesB, DefRulesB, DefPremisesB, SupSet).\nsuperiorArgumentSupport(LastDefRulesA, _, DefPremisesA, LastDefRulesB, _, DefPremisesB, SupSet) :-\n orderingPrinciple(last),\n\tsuperior(LastDefRulesA, DefPremisesA, LastDefRulesB, DefPremisesB, SupSet).\nsuperiorArgumentSupport(_, DefRulesA, DefPremisesA, _, DefRulesB, DefPremisesB, SupSet) :-\n orderingPrinciple(weakest),\n\tsuperior(DefRulesA, DefPremisesA, DefRulesB, DefPremisesB, SupSet).\nsuperior([], PremisesA, [], PremisesB, SupSet) :-\n\tweaker(PremisesB, PremisesA, SupSet).\nsuperior(DefRulesA, _, DefRulesB, _, SupSet) :-\n\torderingPrinciple(last),\n\t(DefRulesA \\== []; DefRulesB \\== []),\n\tweaker(DefRulesB, DefRulesA, SupSet).\nsuperior(DefRulesA, [], DefRulesB, [], SupSet) :-\n\torderingPrinciple(weakest),\n\tweaker(DefRulesB, DefRulesA, SupSet).\nsuperior(DefRulesA, PremisesA, DefRulesB, PremisesB, SupSet) :-\n\torderingPrinciple(weakest),\n\t(DefRulesA \\== []; DefRulesB \\== []),\n\t(PremisesA \\== []; PremisesB \\== []),\n\tweaker(DefRulesB, DefRulesA, SupSetA),\n\tweaker(PremisesB, PremisesA, SupSetB),\n\tutils::appendLists([SupSetA, SupSetB], SupSet).\nweaker(RulesA, [], []) :-\n\tRulesA \\== [].\nweaker(RulesA, RulesB, SupSet) :-\n\tRulesA \\== [],\n\tRulesB \\== [],\n\torderingComparator(elitist),\n\tmember(Rule, RulesA),\n\tallStronger(Rule, RulesB, SupSet), !.\nweaker(RulesA, RulesB, SupSet) :-\n\tRulesA \\== [],\n\tRulesB \\== [],\n\torderingComparator(democrat),\n\tweakerDemo(RulesA, RulesB, SupSet).\nweaker(RulesA, RulesB, [sup(X, W)]) :-\n\tRulesA \\== [],\n\tRulesB \\== [],\n\torderingComparator(normal),\n\tmember(W, RulesA),\n\tmember(X, RulesB),\n\tcontext_check(sup(X, W)), !.\nweakerDemo([], _, []).\nweakerDemo([H|T], Rules, [Sup|SupSet]) :-\n\tsingleStronger(H, Rules, Sup),\n\tweakerDemo(T, Rules, SupSet).\nsingleStronger(Target, Rules, sup(Rule, Target)) :-\n\tmember(Rule, Rules),\n\tcontext_check(sup(Rule, Target)), !.\nallStronger(_, [], []).\nallStronger(Target, [Rule|Rules], [sup(Rule, Target)|SupSet]) :-\n\tcontext_check(sup(Rule, Target)),\n\tallStronger(Target, Rules, SupSet).';
4970
+ this.c3p_1 = 'superiorArgument(A, B) :- superiorArgumentSupportBuffered(A, B, _).\nsuperiorArgument(A, B, SupSet) :- superiorArgumentSupportBuffered(A, B, SupSet).\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n context_check(superior(A, B, SupSet, true)), !.\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n context_check(superior(A, B, SupSet, false)),\n fail, !.\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n \\+ context_check(superior(A, B, _, _)),\n superiorArgumentSupport(A, B, SupSet),\n context_assert(superior(A, B, SupSet, true)), !.\nsuperiorArgumentSupportBuffered(A, B, SupSet) :-\n \\+ cache_check(superior(A, B, _, _)),\n context_assert(superior(A, B, [], false)),\n fail, !.\nsuperiorArgumentSupport([_, _, _, _, [LastDefRulesA, DefRulesA, DefPremisesA]], [_, _, _, _, [LastDefRulesB, DefRulesB, DefPremisesB]], SupSet) :-\n\tsuperiorArgumentSupport(LastDefRulesA, DefRulesA, DefPremisesA, LastDefRulesB, DefRulesB, DefPremisesB, SupSet).\nsuperiorArgumentSupport(LastDefRulesA, _, DefPremisesA, LastDefRulesB, _, DefPremisesB, SupSet) :-\n orderingPrinciple(last),\n\tsuperior(LastDefRulesA, DefPremisesA, LastDefRulesB, DefPremisesB, SupSet).\nsuperiorArgumentSupport(_, DefRulesA, DefPremisesA, _, DefRulesB, DefPremisesB, SupSet) :-\n orderingPrinciple(weakest),\n\tsuperior(DefRulesA, DefPremisesA, DefRulesB, DefPremisesB, SupSet).\nsuperior([], PremisesA, [], PremisesB, SupSet) :-\n\tweaker(PremisesB, PremisesA, SupSet).\nsuperior(DefRulesA, _, DefRulesB, _, SupSet) :-\n\torderingPrinciple(last),\n\t(DefRulesA \\== []; DefRulesB \\== []),\n\tweaker(DefRulesB, DefRulesA, SupSet).\nsuperior(DefRulesA, [], DefRulesB, [], SupSet) :-\n\torderingPrinciple(weakest),\n\tweaker(DefRulesB, DefRulesA, SupSet).\nsuperior(DefRulesA, PremisesA, DefRulesB, PremisesB, SupSet) :-\n\torderingPrinciple(weakest),\n\t(DefRulesA \\== []; DefRulesB \\== []),\n\t(PremisesA \\== []; PremisesB \\== []),\n\tweaker(DefRulesB, DefRulesA, SupSetA),\n\tweaker(PremisesB, PremisesA, SupSetB),\n\tutils::appendLists([SupSetA, SupSetB], SupSet).\nweaker(RulesA, [], []) :-\n\tRulesA \\== [].\nweaker(RulesA, RulesB, SupSet) :-\n\tRulesA \\== [],\n\tRulesB \\== [],\n\torderingComparator(elitist),\n\tmember(Rule, RulesA),\n\tallStronger(Rule, RulesB, SupSet), !.\nweaker(RulesA, RulesB, SupSet) :-\n\tRulesA \\== [],\n\tRulesB \\== [],\n\torderingComparator(democrat),\n\tweakerDemo(RulesA, RulesB, SupSet).\nweaker(RulesA, RulesB, [sup(X, W)]) :-\n\tRulesA \\== [],\n\tRulesB \\== [],\n\torderingComparator(normal),\n\tmember(W, RulesA),\n\tmember(X, RulesB),\n\tcontext_check(sup(X, W)), !.\nweakerDemo([], _, []).\nweakerDemo([H|T], Rules, [Sup|SupSet]) :-\n\tsingleStronger(H, Rules, Sup),\n\tweakerDemo(T, Rules, SupSet).\nsingleStronger(Target, Rules, sup(Rule, Target)) :-\n\tmember(Rule, Rules),\n\tcontext_check(sup(Rule, Target)), !.\nallStronger(_, [], []).\nallStronger(Target, [Rule|Rules], [sup(Rule, Target)|SupSet]) :-\n\tcontext_check(sup(Rule, Target)),\n\tallStronger(Target, Rules, SupSet).';
4608
4971
  }
4609
4972
  var SuperiorityRelation_instance;
4610
4973
  function SuperiorityRelation_getInstance() {
4611
4974
  return SuperiorityRelation_instance;
4612
4975
  }
4613
4976
  function Utils() {
4614
- this.f3n_1 = 'writeList([]) :- nl.\nwriteList([X|Others]) :-\n\twrite(X),\n\twriteList(Others).\nwriteListNl([]).\nwriteListNl([X|Others]) :-\n\twrite(X),nl,\n\twriteListNl(Others).\nsortDistinct(List, Sorted) :-\n deduplicate(List, Deduplicated),\n sort(Deduplicated, Sorted).\ndeduplicate([], []).\ndeduplicate(List, Output) :-\n List \\== [],\n setof(X, member(X, List), Output).\nsort(List,Sorted) :- q_sort(List, [], Sorted).\nq_sort([], Acc, Acc).\nq_sort([H|T], Acc, Sorted) :-\n\tpivoting(H, T, L1, L2),\n\tq_sort(L1, Acc, Sorted1),\n\tq_sort(L2, [H|Sorted1], Sorted).\npivoting(H,[],[],[]).\npivoting(H, [X|T], [X|L], G) :-\n H @>= X,\n pivoting(H, T, L, G).\npivoting(H, [X|T], L, [X|G]) :-\n X @> H,\n pivoting(H, T, L, G).\nsubtract([], _, []).\nsubtract([Head|Tail], L2, L3) :-\n member(Head, L2), !,\n subtract(Tail, L2, L3).\nsubtract([Head|Tail1], L2, [Head|Tail3]) :-\n subtract(Tail1, L2, Tail3).\nisEmptyList([]).\nappendLists([], []).\nappendLists([H|T], R) :-\n appendLists(T, AT),\n append_fast(H, AT, R).\nsearch(F, L, S) :-\n between(1, L, N),\n functor(S, F, N),\n call(S).\nbetween(N, M, K) :- N < M, K = N.\nbetween(N, M, K) :- N == M, !, K = N.\nbetween(N, M, K) :- N < M, N1 is N+1, between(N1, M, K).\nrecoverGraph(Args, Attacks, Supports) :-\n findall(X, context_check(argument(X)), TempArgs),\n findall((T, A, B, C), context_check(attack(T, A, B, C)), TempAttacks),\n findall((A, B), context_check(support(A, B)), TempSupports),\n utils::sort(TempArgs, Args),\n utils::sort(TempAttacks, Attacks),\n utils::sort(TempSupports, Supports).\nrecoverArgumentLabelling(ArgsIn, ArgsOut, ArgsUnd) :-\n findall(X, context_check(in(X)), TempArgsIn),\n findall(X, context_check(out(X)), TempArgsOut),\n findall(X, context_check(und(X)), TempArgsUnd),\n utils::sort(TempArgsIn, ArgsIn),\n utils::sort(TempArgsOut, ArgsOut),\n utils::sort(TempArgsUnd, ArgsUnd).\nrecoverStatementLabelling(In, Out, Und) :-\n findall(X, context_check(statIn(X)), TempIn),\n findall(X, context_check(statOut(X)), TempOut),\n findall(X, context_check(statUnd(X)), TempUnd),\n utils::sort(TempIn, In),\n utils::sort(TempOut, Out),\n utils::sort(TempUnd, Und).';
4977
+ this.d3p_1 = 'writeList([]) :- nl.\nwriteList([X|Others]) :-\n\twrite(X),\n\twriteList(Others).\nwriteListNl([]).\nwriteListNl([X|Others]) :-\n\twrite(X),nl,\n\twriteListNl(Others).\nintersection(Sets, Intersection) :-\n once(member(X, Sets)),\n findall(Y, (\n member(Y, X),\n \\+ (\n member(Set, Sets),\n \\+ member(Y, Set)\n )\n ), Intersection).\nsortDistinct(List, Sorted) :-\n deduplicate(List, Deduplicated),\n sort(Deduplicated, Sorted).\ndeduplicate([], []).\ndeduplicate(List, Output) :-\n List \\== [],\n setof(X, member(X, List), Output).\nsort(List,Sorted) :- q_sort(List, [], Sorted).\nq_sort([], Acc, Acc).\nq_sort([H|T], Acc, Sorted) :-\n\tpivoting(H, T, L1, L2),\n\tq_sort(L1, Acc, Sorted1),\n\tq_sort(L2, [H|Sorted1], Sorted).\npivoting(H,[],[],[]).\npivoting(H, [X|T], [X|L], G) :-\n H @>= X,\n pivoting(H, T, L, G).\npivoting(H, [X|T], L, [X|G]) :-\n X @> H,\n pivoting(H, T, L, G).\nsubtract([], _, []).\nsubtract([Head|Tail], L2, L3) :-\n member(Head, L2), !,\n subtract(Tail, L2, L3).\nsubtract([Head|Tail1], L2, [Head|Tail3]) :-\n subtract(Tail1, L2, Tail3).\nisEmptyList([]).\nappendLists([], []).\nappendLists([H|T], R) :-\n appendLists(T, AT),\n append_fast(H, AT, R).\nsearch(F, L, S) :-\n between(1, L, N),\n functor(S, F, N),\n call(S).\nbetween(N, M, K) :- N < M, K = N.\nbetween(N, M, K) :- N == M, !, K = N.\nbetween(N, M, K) :- N < M, N1 is N+1, between(N1, M, K).\nrecoverGraph(Args, Attacks, Supports) :-\n findall(X, context_check(argument(X)), TempArgs),\n findall((T, A, B, C), context_check(attack(T, A, B, C)), TempAttacks),\n findall((A, B), context_check(support(A, B)), TempSupports),\n utils::sort(TempArgs, Args),\n utils::sort(TempAttacks, Attacks),\n utils::sort(TempSupports, Supports).\nrecoverArgumentLabelling(ArgsIn, ArgsOut, ArgsUnd) :-\n findall(X, context_check(in(X)), TempArgsIn),\n findall(X, context_check(out(X)), TempArgsOut),\n findall(X, context_check(und(X)), TempArgsUnd),\n utils::sort(TempArgsIn, ArgsIn),\n utils::sort(TempArgsOut, ArgsOut),\n utils::sort(TempArgsUnd, ArgsUnd).\nrecoverStatementLabelling(In, Out, Und) :-\n findall(X, context_check(statIn(X)), TempIn),\n findall(X, context_check(statOut(X)), TempOut),\n findall(X, context_check(statUnd(X)), TempUnd),\n utils::sort(TempIn, In),\n utils::sort(TempOut, Out),\n utils::sort(TempUnd, Und).\nrecoverArgumentLabellingId(ArgsIn, ArgsOut, ArgsUnd) :-\n findall(X, context_check(inId(X)), TempArgsIn),\n findall(X, context_check(outId(X)), TempArgsOut),\n findall(X, context_check(undId(X)), TempArgsUnd),\n utils::sort(TempArgsIn, ArgsIn),\n utils::sort(TempArgsOut, ArgsOut),\n utils::sort(TempArgsUnd, ArgsUnd).\nrecoverArgumentLabellingAbstract(ArgsIn, ArgsOut, ArgsUnd) :-\n findall(X, context_check(in([_, _, [X], _, _])), TempArgsIn),\n findall(X, context_check(out([_, _, [X], _, _])), TempArgsOut),\n findall(X, context_check(und([_, _, [X], _, _])), TempArgsUnd),\n utils::sort(TempArgsIn, ArgsIn),\n utils::sort(TempArgsOut, ArgsOut),\n utils::sort(TempArgsUnd, ArgsUnd).';
4615
4978
  }
4616
4979
  var Utils_instance;
4617
4980
  function Utils_getInstance() {
@@ -4622,7 +4985,7 @@
4622
4985
  StructuredModeBase.call(this);
4623
4986
  }
4624
4987
  protoOf(StructuredMode).b3a = function () {
4625
- return QueryMode_instance_0.d3n_1;
4988
+ return QueryMode_instance_0.b3p_1;
4626
4989
  };
4627
4990
  var StructuredMode_instance;
4628
4991
  function StructuredMode_getInstance() {
@@ -4635,7 +4998,7 @@
4635
4998
  AttackRelationBase.call(this);
4636
4999
  }
4637
5000
  protoOf(AttackRelation_0).b3a = function () {
4638
- return AttackRelation_instance.b3n_1;
5001
+ return AttackRelation_instance.z3o_1;
4639
5002
  };
4640
5003
  var AttackRelation_instance_0;
4641
5004
  function AttackRelation_getInstance_0() {
@@ -4648,7 +5011,7 @@
4648
5011
  DebugBase.call(this);
4649
5012
  }
4650
5013
  protoOf(Debug_0).b3a = function () {
4651
- return Debug_instance.c3n_1;
5014
+ return Debug_instance.a3p_1;
4652
5015
  };
4653
5016
  var Debug_instance_0;
4654
5017
  function Debug_getInstance_0() {
@@ -4661,7 +5024,7 @@
4661
5024
  SuperiorityRelationBase.call(this);
4662
5025
  }
4663
5026
  protoOf(SuperiorityRelation_0).b3a = function () {
4664
- return SuperiorityRelation_instance.e3n_1;
5027
+ return SuperiorityRelation_instance.c3p_1;
4665
5028
  };
4666
5029
  var SuperiorityRelation_instance_0;
4667
5030
  function SuperiorityRelation_getInstance_0() {
@@ -4674,7 +5037,7 @@
4674
5037
  UtilsBase.call(this);
4675
5038
  }
4676
5039
  protoOf(Utils_0).b3a = function () {
4677
- return Utils_instance.f3n_1;
5040
+ return Utils_instance.d3p_1;
4678
5041
  };
4679
5042
  var Utils_instance_0;
4680
5043
  function Utils_getInstance_0() {