let G be _Graph; :: thesis: ( G is loopless iff for v being object holds G .edgesDBetween ({v},{v}) = {} )

for v, e being object holds not e DSJoins {v},{v},G

hereby :: thesis: ( ( for v being object holds G .edgesDBetween ({v},{v}) = {} ) implies G is loopless )

assume A3:
for v being object holds G .edgesDBetween ({v},{v}) = {}
; :: thesis: G is loopless assume A1:
G is loopless
; :: thesis: for v being object holds G .edgesDBetween ({v},{v}) = {}

let v be object ; :: thesis: G .edgesDBetween ({v},{v}) = {}

for e being object holds not e in G .edgesDBetween ({v},{v})

end;let v be object ; :: thesis: G .edgesDBetween ({v},{v}) = {}

for e being object holds not e in G .edgesDBetween ({v},{v})

proof

hence
G .edgesDBetween ({v},{v}) = {}
by XBOOLE_0:def 1; :: thesis: verum
given e being object such that A2:
e in G .edgesDBetween ({v},{v})
; :: thesis: contradiction

e DSJoins {v},{v},G by A2, GLIB_000:def 31;

hence contradiction by A1, Th19; :: thesis: verum

end;e DSJoins {v},{v},G by A2, GLIB_000:def 31;

hence contradiction by A1, Th19; :: thesis: verum

for v, e being object holds not e DSJoins {v},{v},G

proof

hence
G is loopless
by Th19; :: thesis: verum
let v be object ; :: thesis: for e being object holds not e DSJoins {v},{v},G

given e being object such that A4: e DSJoins {v},{v},G ; :: thesis: contradiction

e in G .edgesDBetween ({v},{v}) by A4, GLIB_000:def 31;

hence contradiction by A3; :: thesis: verum

end;given e being object such that A4: e DSJoins {v},{v},G ; :: thesis: contradiction

e in G .edgesDBetween ({v},{v}) by A4, GLIB_000:def 31;

hence contradiction by A3; :: thesis: verum