Ckini.Subst (Ckini v0.1.0) View Source

A substitution is set of associations. An association is a {var, val} pair. See the type specs below for details.

Link to this section Summary

Types

An association representing the fact that Var is associated with Term

t()

A substitution

Functions

Equivalent to ext-s-nocheck

Equivalent to ext-s. It does circular reference check before inserting an association pair to a substitution.

Convert a substitution to a valid list term

Verify an neq substitution against a base substitution.

Link to this section Types

Specs

assoc() :: {Ckini.Var.t(), Ckini.Term.t()}

An association representing the fact that Var is associated with Term

Specs

t() :: map()

A substitution

Link to this section Functions

Specs

anyvar?(t(), Ckini.Term.t()) :: boolean()

Specs

assocs(t()) :: [{Ckini.Var.t(), Ckini.Term.t()}]

Specs

concat(t(), t()) :: t() | nil

Specs

decompose(t()) :: nil | {{Ckini.Var.t(), Ckini.Term.t()}, t()}

Specs

deep_walk(t(), Ckini.Term.t() | tuple()) :: Ckini.Term.t() | tuple()

Specs

empty?(t()) :: boolean()

Specs

insert(t(), Ckini.Var.t(), Ckini.Term.t()) :: t() | nil

Equivalent to ext-s-nocheck

Link to this function

insert_unsafe(subs, var, val)

View Source

Specs

insert_unsafe(t(), Ckini.Var.t(), Ckini.Term.t()) :: t() | nil

Equivalent to ext-s. It does circular reference check before inserting an association pair to a substitution.

Specs

new() :: t()
Link to this function

reify(subst \\ new(), t)

View Source

Specs

reify(t(), Ckini.Term.t()) :: t()
Link to this function

reify_subst(subst \\ new(), sub)

View Source
Link to this function

reify_substs(subst, list)

View Source

Specs

singleton(Ckini.Var.t(), Ckini.Term.t()) :: t()

Specs

to_list(t()) :: Ckini.Term.t()

Convert a substitution to a valid list term

Specs

unify(t() | nil, Ckini.Term.t(), Ckini.Term.t()) :: nil | t()
Link to this function

verify_neq(base, subst, acc \\ new())

View Source

Specs

verify_neq(t(), t(), t()) :: nil | t()

Verify an neq substitution against a base substitution.

Specs

walk(t(), Ckini.Term.t() | tuple()) :: Ckini.Term.t() | tuple()