pub enum Model {
Discrete(Box<DiscreteDblModel>),
Modal(Box<ModalDblModel>),
}Expand description
A model generated by DoubleTT.
Similarly to TheoryDef, this enum boxes the different types of models
that can be generated by DoubleTT.
Variants§
Discrete(Box<DiscreteDblModel>)
A model of a discrete double theory.
Modal(Box<ModalDblModel>)
A model of a modal double theory.
Implementations§
Source§impl Model
impl Model
Sourcepub fn from_text(th: &TheoryDef, s: &str) -> Option<Self>
pub fn from_text(th: &TheoryDef, s: &str) -> Option<Self>
Parses and generates a model from plain text.
Sourcepub fn from_ty(
toplevel: &Toplevel,
th: &TheoryDef,
ty: &TyV,
) -> (Self, Namespace)
pub fn from_ty( toplevel: &Toplevel, th: &TheoryDef, ty: &TyV, ) -> (Self, Namespace)
Generates a model from a type.
Precondition: ty must be valid in the empty context.
Sourcepub fn as_discrete(self) -> Option<DiscreteDblModel>
pub fn as_discrete(self) -> Option<DiscreteDblModel>
Tries to extract a model of a discrete theory.
Sourcepub fn as_modal(self) -> Option<ModalDblModel>
pub fn as_modal(self) -> Option<ModalDblModel>
Tries to extract a model of a modal theory.
Sourcepub fn summary(&self, printer: &DblModelPrinter) -> String
pub fn summary(&self, printer: &DblModelPrinter) -> String
Pretty prints a summary of the model.
Sourcepub fn to_doc<'a>(&self, printer: &DblModelPrinter, ns: &Namespace) -> D<'a>
pub fn to_doc<'a>(&self, printer: &DblModelPrinter, ns: &Namespace) -> D<'a>
Pretty prints the model in the given namespace.
Auto Trait Implementations§
impl Freeze for Model
impl !RefUnwindSafe for Model
impl !Send for Model
impl !Sync for Model
impl Unpin for Model
impl !UnwindSafe for Model
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.