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

theorem Th56:
  (G is loopless iff G.allInducedSG() is loopless) &
  (G is non-multi iff G.allInducedSG() is non-multi) &
  (G is non-Dmulti iff G.allInducedSG() is non-Dmulti) &
  (G is simple iff G.allInducedSG() is simple) &
  (G is Dsimple iff G.allInducedSG() is Dsimple) &
  (G is acyclic iff G.allInducedSG() is acyclic) &
  (G is edgeless iff G.allInducedSG() is edgeless) &
  (G is chordal iff G.allInducedSG() is chordal) &
  (G is loopfull iff G.allInducedSG() is loopfull)
proof
  :: loopless
  thus A1: G is loopless implies G.allInducedSG() is loopless
  proof
    assume A2: G is loopless;
    G is GraphUnion of G.allInducedSG() by Th55;
    hence G.allInducedSG() is loopless by A2, GLIB_014:23;
  end;
  thus A3: G.allInducedSG() is loopless implies G is loopless
  proof
    assume A4: G.allInducedSG() is loopless;
    G is GraphUnion of G.allInducedSG() by Th55;
    hence G is loopless by A4;
  end;
  :: non-multi
  thus A5: G is non-multi implies G.allInducedSG() is non-multi
  proof
    assume G is non-multi;
    then G.allSG() is non-multi;
    hence thesis;
  end;
  thus A6: G.allInducedSG() is non-multi implies G is non-multi
  proof
    assume A7: G.allInducedSG() is non-multi;
    G | _GraphSelectors in G.allInducedSG() by Th47;
    then A8: G | _GraphSelectors is non-multi by A7;
    G == G | _GraphSelectors by GLIB_000:128;
    hence thesis by A8, GLIB_000:89;
  end;
  :: non-Dmulti
  thus A9: G is non-Dmulti implies G.allInducedSG() is non-Dmulti
  proof
    assume G is non-Dmulti;
    then G.allSG() is non-Dmulti;
    hence thesis;
  end;
  thus A10: G.allInducedSG() is non-Dmulti implies G is non-Dmulti
  proof
    assume A11: G.allInducedSG() is non-Dmulti;
    G | _GraphSelectors in G.allInducedSG() by Th47;
    then A12: G | _GraphSelectors is non-Dmulti by A11;
    G == G | _GraphSelectors by GLIB_000:128;
    hence thesis by A12, GLIB_000:89;
  end;
  :: simple
  thus G is simple implies G.allInducedSG() is simple by A1, A5;
  thus G.allInducedSG() is simple implies G is simple by A3, A6;
  :: Dsimple
  thus G is Dsimple implies G.allInducedSG() is Dsimple by A1, A9;
  thus G.allInducedSG() is Dsimple implies G is Dsimple by A3, A10;
  :: acyclic
  hereby
    assume G is acyclic;
    then G.allSG() is acyclic;
    hence G.allInducedSG() is acyclic;
  end;
  hereby
    assume A13: G.allInducedSG() is acyclic;
    G | _GraphSelectors in G.allInducedSG() by Th47;
    then A14: G | _GraphSelectors is acyclic by A13;
    G == G | _GraphSelectors by GLIB_000:128;
    hence G is acyclic by A14, GLIB_002:44;
  end;
  :: edgeless
  hereby
    assume G is edgeless;
    then G.allSG() is edgeless;
    hence G.allInducedSG() is edgeless;
  end;
  hereby
    assume A15: G.allInducedSG() is edgeless;
    G | _GraphSelectors in G.allInducedSG() by Th47;
    then A16: G | _GraphSelectors is edgeless by A15;
    G == G | _GraphSelectors by GLIB_000:128;
    hence G is edgeless by A16, GLIB_008:52;
  end;
  :: chordal
  hereby
    assume A17: G is chordal;
    now
      let H be _Graph;
      assume H in G.allInducedSG();
      then consider V being non empty Subset of the_Vertices_of G such that
        A18: H is plain inducedSubgraph of G,V by Th45;
      thus H is chordal by A17, A18;
    end;
    hence G.allInducedSG() is chordal by GLIB_014:def 11;
  end;
  hereby
    assume A19: G.allInducedSG() is chordal;
    G | _GraphSelectors in G.allInducedSG() by Th47;
    then A20: G | _GraphSelectors is chordal by A19;
    G == G | _GraphSelectors by GLIB_000:128;
    hence G is chordal by A20, CHORD:95;
  end;
  :: loopfull
  hereby
    assume A21: G is loopfull;
    now
      let H be _Graph;
      assume H in G.allInducedSG();
      then consider V being non empty Subset of the_Vertices_of G such that
        A22: H is plain inducedSubgraph of G,V by Th45;
      thus H is loopfull by A21, A22;
    end;
    hence G.allInducedSG() is loopfull by GLIB_014:def 13;
  end;
  hereby
    assume A23: G.allInducedSG() is loopfull;
    G | _GraphSelectors in G.allInducedSG() by Th47;
    then A24: G | _GraphSelectors is loopfull by A23;
    G == G | _GraphSelectors by GLIB_000:128;
    hence G is loopfull by A24, GLIB_012:4;
  end;
end;
