Debates#

Debates are sets of arguments#

A debate in the theory of dialectical structures is a set of arguments on which two relations are defined: support and defeat. Formally, a debate is a tuple \(\tau = \left< T, A, U\right>\), where \(T\) is the set of arguments, \(A\) the pairs of arguments that fulfil the support relation, and \(U\) the pairs of arguments that fulfil the support relation.

Relations between arguments in a debate#

The defeat and support relation in TDS are defined as follows: An argument \(a\in T\) defeats another argument \(b\in T\) if the conclusion of \(a\) is equivalent to the negation of a premise in \(b\). An argument \(a\in T\) supports another \(b\in T\) if the conclusion of \(a\) is equivalent to one of the premises in \(b\).

taupy does not require manual input of relations. They are determined automatically from the provided arguments. In the map below, supports between arguments are visualised with solid edges, and defeats through dashed edges.

../_images/argument_map.svg../_images/argument_map_dark.svg

Debate objects#

In taupy, debates are instances of the taupy.Debate class. The general logical structure of a debate is that of a conjunction: taupy.Debate is a sub-class of sympy.And.

class taupy.basic.core.Debate(*args)[source]#

A Debate is composed of arguments. These do not necessarily exhibit any relation. When a debate is initialised, its arguments are given as a comma-separated list. Any number of arguments can be passed to a Debate object.

from taupy import Argument, Debate
from sympy import symbols
a, b, c, d, e = symbols("a b c d e")
tau1 = Debate(Argument(a&b, ~c), Argument(~d&e, ~a))

tau1 is a debate with two arguments. The second Argument(~d&e, ~a) defeats the first Argument(a&b, ~c).