lucid/logic

Types

pub type Subst =
  List(#(Var, Term))
pub type Term {
  V(Var)
  T(String, List(Term))
}

Constructors

  • V(Var)
  • T(String, List(Term))
pub type Var {
  Var(name: String, id: Int)
}

Constructors

  • Var(name: String, id: Int)

Values

pub fn constant(name: String) -> Term
pub fn elim(
  v: Var,
  t: Term,
  eqns: List(#(Term, Term)),
  so_far: List(#(Var, Term)),
) -> Result(List(#(Var, Term)), String)
pub fn solve(
  eqns: List(#(Term, Term)),
  so_far: List(#(Var, Term)),
) -> Result(List(#(Var, Term)), String)
pub fn term(name: String, args: List(Term)) -> Term
pub fn var(name: String, id: Int) -> Term
Search Document