HOL.Data.Unification (hol v1.0.1)
View SourceThis module defines the datastructures used in the unification
Summary
Types
Contains two terms in a tuple.
Represents the summarized results from the unification.
Represents a single solution of a unification problem.
Functions
Accessor function for the flexlist
Accessor function for the max_depth count
Accessor function for the solutions
Accessor function for the substitutions
Creates a new Unification Result.
Creates a new Unification Solution.
Types
@type term_pair() :: {HOL.Data.hol_term(), HOL.Data.hol_term()}
Contains two terms in a tuple.
@type unification_results() :: {:unif_res_sum, solutions :: [unification_solution()], max_depth_reached_count :: non_neg_integer()}
Represents the summarized results from the unification.
Key | Data stored | Accessor Function |
:solutions | List of unification_solutions | get_solutions/1 |
:max_depth_reached_count | The amount of branches that couldn't terminate due to the max_depth limit | get_max_depth_count/1 |
@type unification_solution() :: {:unif_sol, substitutions :: [HOL.Data.substitution()], flexlist :: [term_pair()]}
Represents a single solution of a unification problem.
The flexlist represents cases where the head of two terms are both free variables. As this situation has many (often infinite) solutions, no concrete substitutions are created.
Key | Data stored | Accessor Function |
:substitutions | The substitutions needed to unify the terms | get_substitutions/1 |
:flexlist | List of flexflex pairs | get_flexlist/1 |
Functions
@spec get_flexlist(unification_solution()) :: [term_pair()]
Accessor function for the flexlist
@spec get_max_depth_count(unification_results()) :: non_neg_integer()
Accessor function for the max_depth count
@spec get_solutions(unification_results()) :: [unification_solution()]
Accessor function for the solutions
@spec get_substitutions(unification_solution()) :: [HOL.Data.substitution()]
Accessor function for the substitutions
Creates a new Unification Result.
This function should not need be called under normal usage of this Package.
This Dataformat uses a Record
.
Creates a new Unification Solution.
This function should not need be called under normal usage of this Package.
This Dataformat uses a Record
.