Set Based Implementation#

SetBasedPosition#

class tau.SetBasedPosition(position, n_unnegated_sentence_pool)#

Bases: tau.base.Position

Methods

are_minimally_compatible(position)

Checks for minimal compatibility with position.

as_bitarray()

Position as BitarrayPosition.

as_list()

Position as integer list.

as_set()

Position as integer set.

as_ternary()

Position as ternary.

domain()

Determines the domain of the position.

from_set(position, n_unnegated_sentence_pool)

Instanciating a Position from a set.

intersection(positions)

set-theoretic intersection

is_accepting(sentence)

Checks whether sentence is in the position.

is_in_domain(sentence)

Checks whether sentence is in the domain of the position.

is_minimally_consistent()

Checks for minimal consistency.

is_subposition(position)

Checks for set-theoretic inclusion.

neighbours(depth)

Neighbours of the position.

sentence_pool()

Size of sentence pool.

size()

size of the position

subpositions([n, only_consistent_subpositions])

Iterator over subsets of size n.

union(positions)

set-theoretic union

as_setbased_position

difference

are_minimally_compatible(position)#

Checks for minimal compatibility with position.

Two positions \(\mathcal{A}\) and \(\mathcal{A}'\) are minimally compatible iff \(\mathcal{A} \cup \mathcal{A}'\) is minimally consistent.

Return type

bool

Returns

True iff the position-instance is compatible with position

Parameters

position (tau.base.Position) –

as_bitarray()#

Position as BitarrayPosition.

A pair of bits represents a sentence: The first bit represents acceptance and the second bit rejection. Suspension of a sentence corresponds to both bits being False/0 and (minimal or flat) contradiction is present if both bits are True/1. For instance, the position \(\{ s_1, s_3, \neg s_4 \}\) is represented by 10001001.

Return type

bitarray

Returns

a bitarray representation of the position if possible, otherwise should return None

as_list()#

Position as integer list.

The position \(\mathcal{A}\) represented by a python list of integer values. \(s_i \in \mathcal{A}\) is represented by \(i\) and \(\neg s_i \in \mathcal{A}\) by \(-i\). For instance, the position \(\{ s_1, s_3, \neg s_4 \}\) is represented by [1, 3, -4].

Note

The returned order integer values is not specified.

Return type

List[int]

Returns

a representation of the position as a list of integer values

as_set()#

Position as integer set.

The position \(\mathcal{A}\) represented by a python set of integer values. \(s_i \in \mathcal{A}\) is represented by \(i\) and \(\neg s_i \in \mathcal{A}\) by \(-i\). For instance, the position \(\{ s_1, s_3, \neg s_4 \}\) is represented by {1, 3, -4}.

Return type

Set[int]

Returns

a representation of the position as a set of integer values

static as_setbased_position(position)#
Return type

SetBasedPosition

Parameters

position (tau.base.Position) –

as_ternary()#

Position as ternary.

The position \(\mathcal{A}\) represented by an integer of base 3 (at least). \(s_i \in \mathcal{A}\) is represented by \(1*10^{i-1}\), \(\neg s_i \in \mathcal{A}\) by \(2*10^{i-1}\) and \(s_i, \neg s_i \notin \mathcal{A}\) by zero. For instance, the position \(\{ s_1, s_3, \neg s_4 \}\) is represented by the integer 2101.

Note

Positions that are not minimally consistent cannot be represented in this way.

Return type

int

Returns

a ternary representation of the position if possible, otherwise should return None

difference(pos)#
Return type

Position

Parameters

pos (tau.base.Position) –

domain()#

Determines the domain of the position.

The domain of a position \(\mathcal{A}\) is the closure of \(\mathcal{A}\) under negation.

Return type

Position

Returns

the domain of the position

static from_set(position, n_unnegated_sentence_pool)#

Instanciating a Position from a set.

Return type

Position

Returns

Position

Parameters
  • position (Set[int]) –

  • n_unnegated_sentence_pool (int) –

static intersection(positions)#

set-theoretic intersection

Return type

Position

Returns

The set-theoretic intersection of the given set of :code:`position`s.

Parameters

positions (Set[tau.base.Position]) –

is_accepting(sentence)#

Checks whether sentence is in the position.

Parameters

sentence (int) – A sentence \(s_i\) represented by i.

Return type

bool

Returns

True iff sentence is in the position.

is_in_domain(sentence)#

Checks whether sentence is in the domain of the position.

Parameters

sentence (int) – A sentence \(s_i\) represented by i.

Return type

bool

Returns

True iff sentence is in the domain of the position.

is_minimally_consistent()#

Checks for minimal consistency.

A position \(\mathcal{A}\) is minimally consistent iff \(\forall s \in S: s\in \mathcal{A} \rightarrow \neg s \notin \mathcal{A}\)

Return type

bool

Returns

True iff the position is minimally consistent

is_subposition(position)#

Checks for set-theoretic inclusion.

The position \(\mathcal{A}\) is a subposition of \(\mathcal{A}'\) iff \(\mathcal{A} \subset \mathcal{A}'\).

Return type

bool

Returns

True iff the position-instance is a subposition of position

Parameters

position (tau.base.Position) –

neighbours(depth)#

Neighbours of the position.

Generates all neighbours of the position that can be reached by at most depth many adjustments of individual sentences (including the position itself). The number of neighbours is \(\sum_{k=0}^d {n\choose k}*2^k)\), where n is the number of unnegated sentences and d is the depth of the neighbourhood.

Return type

Iterator[Position]

Parameters

depth (int) –

sentence_pool()#

Size of sentence pool.

Return type

int

Returns

the size of the unnegated sentence pool.

size()#

size of the position

Return type

int

Returns

The amount of sentences in that position (\(|S|\)).

subpositions(n=- 1, only_consistent_subpositions=True)#

Iterator over subsets of size n.

Parameters
  • n (int) – The size of the returned positions. If n is \(-1\), the method returns all subpositions including the empty position and itself.

  • only_consistent_subpositions (bool) – If True only consistent subpositions will be returned.

Return type

Iterator[Position]

Returns

A python iterator over subpositions of size n.

static union(positions)#

set-theoretic union

Return type

Position

Returns

The set-theoretic union of the given set of :code:`position`s.

Parameters

positions (Set[tau.base.Position]) –

DAGSetBasedDialecticalStructure#

class tau.DAGSetBasedDialecticalStructure(n, initial_arguments=None)#

Bases: tau.base.DialecticalStructure

Methods

add_argument(argument)

Adds an argument to the dialectical structure.

add_arguments(arguments)

Adds arguments to the dialectical structure.

are_compatible(position1, position2)

Checks for dialectical compatibility of two positions.

axioms(position[, source])

Iterator over all axiomatic bases from source.

closed_positions()

Iterator over all dialectically closed positions.

closure(position)

Dialectical closure.

consistent_complete_positions()

Iterator over all dialectically consistent and complete positions.

consistent_positions()

Iterator over all dialectically consistent positions.

degree_of_justification(position1, position2)

Conditional degree of justification.

entails(position1, position2)

Dialectical entailment.

from_arguments(arguments, …)

Instanciating a DialecticalStructure from a list of int lists.

get_arguments()

The arguments as a list.

is_closed(position)

Checks whether a position is dialectically closed.

is_complete(position)

Checks whether :code:`position’ is complete.

is_consistent(position)

Checks for dialectical consistency.

is_minimal(position)

Checks dialectical minimality.

minimal_positions()

Iterator over all dialectically minimal positions.

minimally_consistent_positions()

Iterator over all minimally consistent positions.

n_complete_extensions([position])

Number of complete and consistent extension.

sentence_pool()

sentence pool.

complete_minimally_consistent_positions

compute_complete_consistent_positions

add_argument(argument)#

Adds an argument to the dialectical structure.

Parameters

argument (List[int]) – An argument as an integer list. The last element represents the conclusion the others the premises.

Returns

The dialectical structure for convenience.

add_arguments(arguments)#

Adds arguments to the dialectical structure.

Parameters

arguments (List[List[int]]) – A list of arguments as a list of integer lists.

Return type

DialecticalStructure

Returns

The dialectical structure for convenience.

are_compatible(position1, position2)#

Checks for dialectical compatibility of two positions.

Two positions are dialectically compatible iff there is a complete and consistent positition that extends both.

Return type

bool

Returns

True iff position1 it dialectically compatible to position2.

Parameters
  • position1 (tau.base.Position) –

  • position2 (tau.base.Position) –

axioms(position, source=None)#

Iterator over all axiomatic bases from source. The source defaults to all consistent positions if it is not provided.

A position \(\mathcal{B}\) is an axiomatic basis of another position \(\mathcal{A}\) iff \(\mathcal{A}\) is dialectically entailed by \(\mathcal{B}\) and there is no proper subset \(\mathcal{C}\) of \(\mathcal{B}\) such that \(\mathcal{A}\) is entailed by \(\mathcal{C}\).

This method should throw a ValueError if the given position is inconsistent.

Return type

Iterator[Position]

Returns

A python-iterator over all axiomatic bases of position from source and None if there is no axiomatic basis in the source.

Parameters
  • position (tau.base.Position) –

  • source (Optional[Iterator[tau.base.Position]]) –

closed_positions()#

Iterator over all dialectically closed positions.

This iterator will include the empty position, if it is closed.

Return type

Iterator[Position]

Returns

A python-iterator over all dialectically closed positions.

closure(position)#

Dialectical closure.

The dialectical closure of a position \(\mathcal{A}\) is the intersection of all consistent and complete positions that extend \(\mathcal{A}\). Note that in consequence, the empty position can have a non-empty closure.

Return type

Position

Returns

The dialectical closure of position.

Parameters

position (tau.base.Position) –

complete_minimally_consistent_positions()#
Return type

Iterator[Position]

compute_complete_consistent_positions()#
consistent_complete_positions()#

Iterator over all dialectically consistent and complete positions.

Return type

Iterator[Position]

Returns

A python iterator over all dialectically consistent and complete positions.

consistent_positions()#

Iterator over all dialectically consistent positions.

This iterator will include the empty position.

Return type

Iterator[Position]

Returns

A python iterator over all dialectically consistent positions.

degree_of_justification(position1, position2)#

Conditional degree of justification.

The conditional degree of justification \(DOJ\) of two positions \(\mathcal{A}\) and \(\mathcal{B}\) is defined by \(DOJ(\mathcal{A}| \mathcal{B}):=\frac{\sigma_{\mathcal{AB}}}{\sigma_{\mathcal{B}}}\) with \(\sigma_{\mathcal{AB}}\) the set of all consistent and complete positions that extend both \(\mathcal{A}\) and \(\mathcal{B}\) and \(\sigma_{\mathcal{B}}\) the set of all consistent and complete positions that extend \(\mathcal{B}\).

Return type

float

Returns

The conditional degree of justification of position1 with respect to position2.

Parameters
  • position1 (tau.base.Position) –

  • position2 (tau.base.Position) –

entails(position1, position2)#

Dialectical entailment.

A position \(\mathcal{A}\) dialectically entails another position \(\mathcal{B}\) iff every consistent and complete position that extends \(\mathcal{A}\) also extends \(\mathcal{B}\).

Return type

bool

Returns

True iff position2 is dialectically entailed by position1.

Parameters
  • position1 (tau.base.Position) –

  • position2 (tau.base.Position) –

static from_arguments(arguments, n_unnegated_sentence_pool)#

Instanciating a DialecticalStructure from a list of int lists.

Return type

DialecticalStructure

Returns

DialecticalStructure

Parameters
  • arguments (List[List[int]]) –

  • n_unnegated_sentence_pool (int) –

get_arguments()#

The arguments as a list.

Return type

List[List[int]]

Returns

The arguments as a list of integer lists. The last element of each inner list represents the conclusion, the others the premises.

is_closed(position)#

Checks whether a position is dialectically closed.

Return type

bool

Returns

True iff position is dialectically closed.

Parameters

position (tau.base.Position) –

is_complete(position)#

Checks whether :code:`position’ is complete.

A position \(\mathcal{A}\) is complete iff the domain of \(\mathcal{A}\) is identical with the sentence pool \(S\).

Return type

bool

Returns

True iff the Position is complete.

Parameters

position (tau.base.Position) –

is_consistent(position)#

Checks for dialectical consistency.

A complete position \(\mathcal{A}\) is dialectically consistent iff it is a minimally consistent and for all arguments \(a=(P_a, c_a) \in A\) holds: If \((\forall p \in P_a:p \in \mathcal{A})\) then \(c_a \in \mathcal{A}\)

A partial position \(\mathcal{A}\) is dialectically consistent iff there is a complete and consistent position that extends \(\mathcal{A}\).

Return type

bool

Returns

True iff position it dialectically consistent.

Parameters

position (tau.base.Position) –

is_minimal(position)#

Checks dialectical minimality.

A position \(\mathcal{A}\) is dialectically minimal if every subposition \(\mathcal{B}\subseteq\mathcal{A}\) that entails \(\mathcal{A}\) is identical with \(\mathcal{A}\).

Return type

bool

Returns

True iff position is dialectically minimal.

Parameters

position (tau.base.Position) –

minimal_positions()#

Iterator over all dialectically minimal positions.

Return type

Iterator[Position]

Returns

A python iterator over all dialectically minimal positions.

minimally_consistent_positions()#

Iterator over all minimally consistent positions.

A position \(\mathcal{A}\) is minimally consistent iff \(\forall s \in S: s\in \mathcal{A} \rightarrow \neg s \notin \mathcal{A}\)

This iterator will include the empty position.

Return type

Iterator[Position]

Returns

A python iterator over all minimally consistent positions.

n_complete_extensions(position=None)#

Number of complete and consistent extension.

Return type

int

Returns

The number of complete and consistent positions that extend position.

Parameters

position (Optional[tau.base.Position]) –

sentence_pool()#

sentence pool.

Returns from \(S = \{ s_1, s_2, \dots, s_N, \neg s_1, \neg s_2, \dots, \neg s_N \}\) only \(\{ s_1, s_2, \dots, s_N\}\)

Return type

Position

Returns

“Half” of the full sentence pool \(S\) as Position (sentences without their negation).