fact: Definition Dfs dfs m i := 'let m := add_mark m i in 'let v := neighbours i in 'let aux := (fun j m => if is_marked m j then m else dfs m j) in fold_left aux m v.
imports: TLC(LibTactics LibLogic LibReflect LibFun LibEpsilon LibList LibInt LibNat LibProd LibSum LibRelation LibWf LibFix LibStream) ZifyNat