logtk

Core types and algorithms for logic
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library logtk
Module Logtk . HVar

Hashconsed Variable

A variable for hashconsed terms, paired with a type. Such a 'ty HVar.t is really a pair (int, 'ty): the integer is used to be able to have several variables in the same clause, the type is because in typed logic we must know the type of variables before unifying/binding them.

type +'a t = private {
id : int;
ty : 'a;
}
type 'a hvar = 'a t
val make : ty:'a -> int -> 'a t
val id : _ t -> int
val ty : 'a t -> 'a
val cast : 'a t -> ty:'b -> 'b t
val update_ty : 'a t -> f:( 'a -> 'b ) -> 'b t
val compare : ( 'a -> 'a -> int ) -> 'a t -> 'a t -> int
val equal : ( 'a -> 'a -> bool ) -> 'a t -> 'a t -> bool
val hash : _ t -> int
val max : 'a t -> 'a t -> 'a t
val min : 'a t -> 'a t -> 'a t
val pp : _ t CCFormat.printer
val pp_tstp : _ t CCFormat.printer
val to_string : _ t -> string
val to_string_tstp : _ t -> string