reserve G for Graph,
  v, v1, v2 for Vertex of G,
  c for Chain of G,
  p, p1, p2 for Path of G,
  vs, vs1, vs2 for FinSequence of the carrier of G,
  e, X for set,
  n, m for Nat;
reserve G for finite Graph,
  v for Vertex of G,
  c for Chain of G,
  vs for FinSequence of the carrier of G,
  X1, X2 for set;
reserve G for Graph,
  v, v1, v2 for Vertex of G,
  c for Chain of G,
  p for Path of G,
  vs for FinSequence of the carrier of G,
  v9 for Vertex of AddNewEdge(v1, v2),
  p9 for Path of AddNewEdge(v1, v2),
  vs9 for FinSequence of the carrier of AddNewEdge(v1, v2);
reserve G for finite Graph,
  v, v1, v2 for Vertex of G,
  vs for FinSequence of the carrier of G,
  v9 for Vertex of AddNewEdge(v1, v2);
reserve G for Graph,
  v for Vertex of G,
  vs for FinSequence of the carrier of G;

theorem Th53:
  for G being Graph, c1, c2 be Element of G-CycleSet st G-VSet rng
  c1 meets G-VSet rng c2 & rng c1 misses rng c2 & (c1 <> {} or c2 <> {}) holds
  CatCycles(c1, c2) is non empty
proof
  let G be Graph, c1, c2 be Element of G-CycleSet;
  assume that
A1: G-VSet rng c1 meets G-VSet rng c2 and
A2: rng c1 misses rng c2 and
A3: c1 <> {} or c2 <> {};
  consider v being Vertex of G such that
A4: v = the Element of (G-VSet rng c1) /\ (G-VSet rng c2) and
A5: CatCycles(c1, c2) = Rotate(c1, v)^Rotate(c2, v) by A1,A2,Def10;
A6: (G-VSet rng c1) /\ (G-VSet rng c2) <> {} by A1;
  then
A7: v in (G-VSet rng c1) by A4,XBOOLE_0:def 4;
A8: v in (G-VSet rng c2) by A4,A6,XBOOLE_0:def 4;
  per cases by A3;
  suppose
    c1 <> {};
    then rng Rotate(c1, v) <> {} by A7,Lm5;
    hence thesis by A5,FINSEQ_1:35,RELAT_1:38;
  end;
  suppose
   c2 <> {};
    then rng Rotate(c2, v) <> {} by A8,Lm5;
    hence thesis by A5,FINSEQ_1:35,RELAT_1:38;
  end;
end;
