ArgumentModule
The term of an argument (module argument), read and built through it rather than by the positions of its parts.
An argument is the list [Rules, TopRule, Conclusion, Body, Info]:
Rules: the identifiers of the rules and premises it is made of;
TopRule: the identifier of its last rule,
nonefor an argument made of a premise alone;Conclusion: the statement it concludes,
[Claim];Body: the premises of its top rule;
Info:
[LastDefeasibleRules, DefeasibleRules, DefeasiblePremises], what the preferences between arguments weigh.
Each accessor is a fact relating an argument to one of its parts, so it works both ways: given an argument it reads the part, given a part it builds the template of the arguments with it, to look them up in the context (argument::claim(A, sup(X, Y)), context_check(argument(A))). Kotlin reads and builds the terms through ArgumentTerm.parts and ArgumentTerm.info, written after the same layout.