Represents the application of a term of type functionType
to a term of type argumentType
to obtain
type target
.
Type inhabitation for bounded combinatory logic (BCL).
Represents types inhabited by a combinator without arguments.
Represents uninhabited types.
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 set of rules for 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 set of rules for 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.
Rules describe how to form inhabitants from combinators.
A combinator expression.
A combinator expression.
the name of the combinator in head position.
arguments of the combinator.
Enumeration of all combinator expressions derivable from a tree grammar.
Enumeration of all combinator expressions derivable from a tree grammar. Use TreeGrammarEnumeration.apply to obtain an enumeration for any given tree grammar.
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 (ordered) list of rules
Returns a prettified String representation of the given rule set