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

theorem
  (G is loopless iff G.allSpanningSG() is loopless) &
  (G is non-multi iff G.allSpanningSG() is non-multi) &
  (G is non-Dmulti iff G.allSpanningSG() is non-Dmulti) &
  (G is simple iff G.allSpanningSG() is simple) &
  (G is Dsimple iff G.allSpanningSG() is Dsimple) &
  (G is acyclic iff G.allSpanningSG() is acyclic) &
  (G is edgeless iff G.allSpanningSG() is edgeless)
proof
  :: loopless
  thus G is loopless implies G.allSpanningSG() is loopless;
  thus A1: G.allSpanningSG() is loopless implies G is loopless
  proof
    assume A2: G.allSpanningSG() is loopless;
    G is GraphUnion of G.allSpanningSG() by Th72;
    hence G is loopless by A2;
  end;
  :: non-multi
  thus G is non-multi implies G.allSpanningSG() is non-multi;
  thus A3: G.allSpanningSG() is non-multi implies G is non-multi
  proof
    assume A4: G.allSpanningSG() is non-multi;
    G | _GraphSelectors in G.allSpanningSG() by Th62;
    then A5: G | _GraphSelectors is non-multi by A4;
    G == G | _GraphSelectors by GLIB_000:128;
    hence thesis by A5, GLIB_000:89;
  end;
  :: non-Dmulti
  thus G is non-Dmulti implies G.allSpanningSG() is non-Dmulti;
  thus A6: G.allSpanningSG() is non-Dmulti implies G is non-Dmulti
  proof
    assume A7: G.allSpanningSG() is non-Dmulti;
    G | _GraphSelectors in G.allSpanningSG() by Th62;
    then A8: G | _GraphSelectors is non-Dmulti by A7;
    G == G | _GraphSelectors by GLIB_000:128;
    hence thesis by A8, GLIB_000:89;
  end;
  :: simple
  thus G is simple implies G.allSpanningSG() is simple;
  thus G.allSpanningSG() is simple implies G is simple by A1, A3;
  :: Dsimple
  thus G is Dsimple implies G.allSpanningSG() is Dsimple;
  thus G.allSpanningSG() is Dsimple implies G is Dsimple by A1, A6;
  :: acyclic
  thus G is acyclic implies G.allSpanningSG() is acyclic;
  hereby
    assume A9: G.allSpanningSG() is acyclic;
    G | _GraphSelectors in G.allSpanningSG() by Th62;
    then A10: G | _GraphSelectors is acyclic by A9;
    G == G | _GraphSelectors by GLIB_000:128;
    hence G is acyclic by A10, GLIB_002:44;
  end;
  :: edgeless
  thus G is edgeless implies G.allSpanningSG() is edgeless;
  hereby
    assume A11: G.allSpanningSG() is edgeless;
    G | _GraphSelectors in G.allSpanningSG() by Th62;
    then A12: G | _GraphSelectors is edgeless by A11;
    G == G | _GraphSelectors by GLIB_000:128;
    hence G is edgeless by A12, GLIB_008:52;
  end;
end;
