morphism type: add apply_subst()

This commit is contained in:
Michael Sippel 2025-04-02 20:11:03 +02:00
parent 6fa46ae45d
commit 72705e824e
Signed by: senvas
GPG key ID: F96CF119C34B64A6
2 changed files with 8 additions and 4 deletions

View file

@ -54,10 +54,7 @@ impl<'a, M:SugaredMorphism+Clone> SugaredShortestPathProblem<'a, M> {
let mut creates_loop = false;
let mut new_path = prev_path.clone();
for n in new_path.morphisms.iter_mut() {
n.apply_subst(&morph_inst.get_subst());
}
new_path.apply_subst(&morph_inst.get_subst());
for m in new_path.morphisms.iter() {
if m.get_type().src_type == dst_type {
creates_loop = true;

View file

@ -135,6 +135,13 @@ impl SugaredMorphismType {
(x,y) => SugaredMorphismType { src_type: x.clone(), dst_type: y.clone() }
}
}
pub fn apply_subst(&self, σ: &impl SugaredSubstitution) -> SugaredMorphismType {
SugaredMorphismType {
src_type: self.src_type.clone().apply_subst(σ).clone(),
dst_type: self.dst_type.clone().apply_subst(σ).clone()
}
}
}
pub trait SugaredMorphism : Sized {