
theorem
  for G being _finite _Graph st
    ex S being VertexScheme of G st S is perfect holds
  G is chordal
proof
  let G be _finite _Graph;
  given S being VertexScheme of G such that
A1: S is perfect;
A2: rng S = the_Vertices_of G by Def12;
  let P be Walk of G such that
A3: P.length() > 3 and
A4: P is Cycle-like;
  P.vertices() is non empty by GLIB_001:88;
  then consider x being set such that
A5: x in P.vertices() and
A6: for y being set st y in P.vertices() holds x..S <= y..S by A2,Th15;
  reconsider x as Vertex of G by A5;
  set n = x..S;
  set H = the inducedSubgraph of G,S.followSet(n);
A7: rng S = the_Vertices_of G by Def12;
  then
A8: n in dom S by FINSEQ_4:20;
A9: S is one-to-one by Def12;
  then x in S.followSet(n) by A7,A8,Th16;
  then reconsider y=x as Vertex of H by GLIB_000:def 37;
A10: S.followSet(n) is non empty by A7,Th106,FINSEQ_4:21;
  now
    let y be object such that
A11: y in P.vertices();
    reconsider z=y as Vertex of G by A11;
    x..S <= z..S by A6,A11;
    hence y in S.followSet(n) by A7,A8,A9,Th16;
  end;
  then P.vertices() c= S.followSet(n);
  then reconsider C=P as Walk of H by A10,Th23;
  reconsider C as Path of H by A4,GLIB_001:176;
A12: C is closed by A4,GLIB_001:176;
A13: y in C.vertices() by A5,GLIB_001:98;
A14: rng S = the_Vertices_of G by Def12;
  then
A15: S.n = x by FINSEQ_4:19;
  C is non trivial by A4;
  then
A16: C is Cycle-like by A12;
  C.length() > 3 by A3,GLIB_001:114;
  then consider a,b being odd Nat such that
A17: a+2 < b and
A18: b <= len C and
A19: C.a <> C.b and
A20: C.a in H.AdjacentSet({y}) and
A21: C.b in H.AdjacentSet({y}) and
A22: for e being object st e in C.edges() holds not e Joins C.a,C.b,H
    by A16,A13,Th54;
  n <= len S by A14,FINSEQ_4:21;
  then y is simplicial by A1,A15;
  then ex e being object st e Joins C.a,C.b,H by A19,A20,A21,Th67;
  then C is chordal by A17,A18,A19,A22;
  hence thesis by A10,Th86;
end;
