pub fn is_valid(&self) -> bool {
        match self {
            SubtypePropEnum::Conj(ps) => ps.iter().all(|p| p.is_valid()),
            SubtypePropEnum::Disj(ps) => ps.iter().any(|p| p.is_valid()),
            SubtypePropEnum::Coerce(_, _) | SubtypePropEnum::IsSubtype(_, _) => false,
        }
    }
// Return true if this proposition is always true
Return true if this proposition is always true
Return true if this proposition is always true
pub fn is_valid(&self) -> bool {
        match self {
            SubtypePropEnum::Conj(ps) => ps.iter().all(|p| p.is_valid()),
            SubtypePropEnum::Disj(ps) => ps.iter().any(|p| p.is_valid()),
            SubtypePropEnum::Coerce(_, _) | SubtypePropEnum::IsSubtype(_, _) => false,
        }
    }
pub fn is_valid ( & self ) -> bool { match self { SubtypePropEnum :: Conj ( ps ) => ps . iter ( ) . all ( | p | p . is_valid ( ) ) , SubtypePropEnum :: Disj ( ps ) => ps . iter ( ) . any ( | p | p . is_valid ( ) ) , SubtypePropEnum :: Coerce ( _ , _ ) | SubtypePropEnum :: IsSubtype ( _ , _ ) => false , } }
Return true if this proposition is always true
Return true if this proposition is always true
&self
&self