reserve G, G1, G2 for _Graph, H for Subgraph of G;

theorem Th180:
  for F being PGraphMapping of G1, G2 st F is weak_SG-embedding onto
  holds G2.allSpanningTrees() = rng(SG2SGFunc(F) | G1.allSpanningTrees())
proof
  let F be PGraphMapping of G1, G2;
  set f = SG2SGFunc(F);
  assume A1: F is weak_SG-embedding onto;
  then rng F_V = the_Vertices_of G2 by GLIB_010:def 12;
  then A2: rng(f|G1.allSpanningTrees()) c= G2.allSpanningTrees() by A1, Th179;
  G2.allConnectedSG() c= rng(f | G1.allConnectedSG()) &
    G2.allSpanningForests() c= rng(f | G1.allSpanningForests())
    by A1, Th133, Th114;
  then G2.allConnectedSG() /\ G2.allSpanningForests() c=
    rng(f | G1.allConnectedSG()) /\ rng(f | G1.allSpanningForests())
    by XBOOLE_1:27;
  then A3: G2.allSpanningTrees() c=
    rng(f | G1.allConnectedSG()) /\ rng(f | G1.allSpanningForests()) by Th170;
  A4: rng(f | G1.allConnectedSG()) = f.:G1.allConnectedSG() by RELAT_1:115;
  A5: rng(f | G1.allSpanningForests()) = f.:G1.allSpanningForests()
    by RELAT_1:115;
  A6: f is one-to-one by A1, Th31;
  rng(f | G1.allConnectedSG()) /\ rng(f | G1.allSpanningForests())
     = f.:(G1.allConnectedSG() /\ G1.allSpanningForests())
        by A4, A5, A6, FUNCT_1:62
    .= rng(f | (G1.allConnectedSG() /\ G1.allSpanningForests())) by RELAT_1:115
    .= rng(f | G1.allSpanningTrees()) by Th170;
  hence thesis by A2, A3, XBOOLE_0:def 10;
end;
