Type inhabitation for bounded combinatory logic (BCL).
Type inhabitation for finite combinatory logic (FCL)
For a finitite substitution space, a subtype environment and a repository Gamma
, an
inhabitation algorithm takes a sequence of types and returns a tree grammar, describing all inhabitants of these
types.
For a finitite substitution space, a subtype environment and a repository Gamma
, an
inhabitation algorithm takes a sequence of types and returns a tree grammar, describing all inhabitants of these
types.
We have for all i ≤ k
:
Gamma |- M : tau_i
iff M is a word of the language of the grammar returned by the algorithm applied to
Seq(tau_1, tau_2, ..., tau_k)
.
Repositories map combinator names to types
A combinator expression.
A combinator expression.
the name of the combinator in head position.
arguments of the combinator.
Tree Grammars map types to sets of combinators and recursive targets, such that the combinator, when applied to arguments of the recursive target types, returns a value of the type on the left hand side
Enumeration of all combinatory expressions derivable from a TreeGrammar.
Enumeration of all combinatory expressions derivable from a TreeGrammar.
Use TreeGrammarEnumeration.apply to obtain an enumeration for any given TreeGrammar
.
Provides a type inhabitation algorithm for bounded combinatory logic (BCL).
Provides a type inhabitation algorithm for finite combinatory logic (FCL)
Helper object to obtain enumerations.
Returns a prettified String representation of the given tree grammar