HOL.Data.Unification (hol v1.0.1)

View Source

This 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

term_pair()

@type term_pair() :: {HOL.Data.hol_term(), HOL.Data.hol_term()}

Contains two terms in a tuple.

unification_results()

@type unification_results() ::
  {:unif_res_sum, solutions :: [unification_solution()],
   max_depth_reached_count :: non_neg_integer()}

Represents the summarized results from the unification.

KeyData storedAccessor Function
:solutionsList of unification_solutionsget_solutions/1
:max_depth_reached_countThe amount of branches that couldn't terminate due to the max_depth limitget_max_depth_count/1

unification_solution()

@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.

KeyData storedAccessor Function
:substitutionsThe substitutions needed to unify the termsget_substitutions/1
:flexlistList of flexflex pairsget_flexlist/1

Functions

get_flexlist(arg)

@spec get_flexlist(unification_solution()) :: [term_pair()]

Accessor function for the flexlist

get_max_depth_count(arg)

@spec get_max_depth_count(unification_results()) :: non_neg_integer()

Accessor function for the max_depth count

get_solutions(arg)

@spec get_solutions(unification_results()) :: [unification_solution()]

Accessor function for the solutions

get_substitutions(arg)

@spec get_substitutions(unification_solution()) :: [HOL.Data.substitution()]

Accessor function for the substitutions

unification_results(args \\ [])

(macro)

Creates a new Unification Result.

This function should not need be called under normal usage of this Package.

This Dataformat uses a Record.

unification_results(record, args)

(macro)

unification_solution(args \\ [])

(macro)

Creates a new Unification Solution.

This function should not need be called under normal usage of this Package.

This Dataformat uses a Record.

unification_solution(record, args)

(macro)