Skip to main content

LogicalRelation

Struct LogicalRelation 

Source
pub struct LogicalRelation {
    pub ty: SimpleType,
    /* private fields */
}
Expand description

A logical relation for a simple type system: maps types to relations between elements of the denotation. Relations are represented as predicate closures.

Fields§

§ty: SimpleType

Name of the type

Implementations§

Source§

impl LogicalRelation

Source

pub fn base( name: impl Into<String>, pred: impl Fn(&str, &str) -> bool + 'static, ) -> Self

Build the logical relation for a base type using a supplied predicate.

Source

pub fn arrow(dom: LogicalRelation, cod: LogicalRelation) -> Self

Build the logical relation for A → B from relations for A and B. (f, g) ∈ [A→B] iff ∀ (a,b) ∈ [A], (f a, g b) ∈ [B].

Source

pub fn relates(&self, a: &str, b: &str) -> bool

Test whether a pair of elements are related.

Check the fundamental property: every closed term is related to itself.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.