Abstract Tableau
All tableaux structures are recursive structures resembling a tree structure. Each logic is associated with a specific tableau structure subtype of AbstractTableau, and must comprise at least a father, an array of children, and two flags expanded and closed.
SoleReasoners.AbstractTableau — Typeabstract type AbstractTableau endAbstract type for all tableaux structures.
All tableaux structures are recursive structures resembling a tree structure. Each subtype T where T<:AbstractTableau is expected to have at least a field faher of the same type T (or Nothing in case it is the root), a field children comprising a vector of elements of type T, and two flags expanded and closed of type Bool claiming if the node has been expanded (resp. closed) or not.
SoleReasoners.father — Methodfather(t::T) where {T<:AbstractTableau}Return the father of a tableu t.
SoleReasoners.children — Methodchildren(t::T) where {T<:AbstractTableau}Return the vector of children of a tableu t.
SoleReasoners.expanded — Methodexpanded(t::T) where {T<:AbstractTableau}Return true if a tableu t has already been expanded, false otherwise.
SoleReasoners.closed — Methodclosed(t::T) where {T<:AbstractTableau}Return true if a tableu t has already been closed, false otherwise.
SoleReasoners.isroot — Methodisroot(t::T) where {T<:AbstractTableau}Return true if a tableu t is the root of the tableau, false otherwise.
SoleReasoners.isleaf — Methodisleaf(t::T) where {T<:AbstractTableau}Return true if a tableu t is a leaf of the tableau, false otherwise.
SoleReasoners.expand! — Methodexpand!(t::T) where {T<:AbstractTableau}Set the expanded flag to true.
SoleReasoners.findexpansionnode — Methodfindexpansionnode(t::T) where {T<:AbstractTableau}Search for the node to be expanded recursevely scanning the ancestors of t.
SoleReasoners.findleaves — Methodfindleaves(t::T) where {T<:AbstractTableau}Find all leaves descendants of t.
SoleReasoners.close! — Methodclose!(t::T) where {T<:AbstractTableau}Set the closed flag of t to true and recursevely close all its descendants; if t is not the root of the tableau, also remove it from the list of children of its father and if t does not have any simblings recursevely close it.
SoleReasoners.pushchild! — Methodpushchild!(father::T, child::T) where {T<:AbstractTableau}Push new child tableau to the children of father tableau.
Base.show — Methodshow(io::IO, _::T) where {T<:AbstractTableau}Method to be overwritten with the signature of a specific tableaux structure.