def __contains__(self, x): """ Check if ``x`` is in ``self``. EXAMPLES:: sage: B = crystals.Tableaux(['B',3], shape=[1]) sage: C = crystals.Tableaux(['D',4], shape=[2]) sage: psi = B.crystal_morphism(C.module_generators) sage: V = psi.image() sage: mg = C.module_generators[0] sage: mg in V True sage: mg.f(1) in V False sage: mg.f(1).f(1) in V True """ if not Subcrystal.__contains__(self, x): return False if self in FiniteCrystals(): if isinstance(x, self._ambient.element_class): if x.parent() == self: x = self.element_class(self, self._ambient(x)) elif x.parent() == self._ambient: x = self.element_class(self, self._ambient(x)) elif isinstance(x, self.element_class) and x.parent() != self: x = self.element_class(self, x.value) return x in self.list() return True
def __init__(self, ambient, virtualization, scaling_factors, contained, generators, cartan_type, index_set, category): """ Initialize ``self``. EXAMPLES:: sage: B = crystals.Tableaux(['B',3], shape=[1]) sage: C = crystals.Tableaux(['D',4], shape=[2]) sage: psi = B.crystal_morphism(C.module_generators) sage: V = psi.image() sage: TestSuite(V).run() """ self._virtualization = virtualization self._scaling_factors = scaling_factors Subcrystal.__init__(self, ambient, contained, generators, cartan_type, index_set, category)