Ckini.Context (Ckini v0.1.0) View Source

An intermediate state of computation.

It contains a substitution of variables and a set of different types of constraints:

  • neq: created using neq goal
  • sym: created using symbolo goal
  • abs: created using absento goal

Link to this section Summary

Link to this section Types

Specs

t() :: %Ckini.Context{
  abs: MapSet.t({Ckini.Term.t(), Ckini.Term.t()}),
  neq: [Ckini.Subst.t()],
  subst: Ckini.Subst.t(),
  sym: MapSet.t(Ckini.Var.t())
}

Link to this section Functions

Link to this function

add_abs_constraint(ctx, t, u)

View Source

Specs

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

add_sym_constraint(ctx, v, t)

View Source

Specs

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

Specs

constraints(t()) :: keyword()

Specs

disunify(t(), Ckini.Term.t(), Ckini.Term.t()) :: nil | t()

Specs

purify(t(), Ckini.Subst.t()) :: t()

Retain only the constraints related to the given term.

Link to this function

purify_abs(abs, r, subst)

View Source
Link to this function

purify_neq(cs, r, subst)

View Source

Specs

purify_neq([Ckini.Subst.t()], Ckini.Subst.t(), Ckini.Subst.t()) :: [
  Ckini.Subst.t()
]

Specs

unify(t(), Ckini.Term.t(), Ckini.Term.t()) :: nil | t()

Specs

verify(t()) :: t() | nil

Specs

verify_abs(t() | nil) :: t() | nil

Specs

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

Specs

verify_sym(t() | nil) :: t() | nil

Specs

verify_valid_subst(t()) :: nil