TRED(1)
π TRED(1) β transitive reduction filter for directed graphs π
okay bestie so you know how your graphs are out here looking like a whole tangled mess of yarn? this is the manual page for tred, from the General Commands Manual, and it is literally here to declutter your life. no cap.
β¨ NAME β¨
tred β transitive reduction filter for directed graphs π¦
πΈ SYNOPSIS πΈ
tred [ -ovr? ] [ files ]
π DESCRIPTION π
so what does tred actually do, you ask? it computes the transitive reduction of directed graphs, and then prints the resulting graphs to a file or to standard output. periodt.
what even is a transitive reduction, bestie? it's the process that removes edges implied by transitivity. that's the whole vibe. Nodes and subgraphs are not otherwise affected β they stay exactly as they were, untouched, living their truth. π
ngl, the ``meaning'' and validity of the reduced graphs is application dependent. so like, whether the result even makes sense for what you're doing? that's on your app, not on tred. π
but here's where it eats: tred is particularly useful as a preprocessor to dot to reduce clutter in dense layouts. dense layout? cluttered? not anymore. iconic behavior honestly. π₯
π«Ά heads up: Undirected graphs are silently ignored. no warning, no drama, just... ignored. it's giving ghosting but make it graph theory. π
β OPTIONS β
the following options are supported, bestie, and there aren't that many so you have zero excuse to skip them:
-o FILEβ redirect output to the given file. by default, output goes tostdout. (yes bestie, default is just vibing in your terminal.) π-vβ verbose output tostderr. she's chatty, she's telling you what's up, but only onstderr. π¬-rβ print information of removed edges tostderr. so you can see exactly which edges got the boot. very main character of them to announce their own exit. π-?β print usage information. the classic "how do i even" button. π
π§ OPERANDS π§
the following operand is supported:
filesβ names of files containing 1 or more graphs indotformat. and if you don't specify afilesoperand? no worries bestie, the standard input will be used. she'll read fromstdinlike it's nothing. π
π BUGS π
okay so this is the part where we keep it real:
- using bitmaps internally would substantially decrease running time.
that's it. that's the bug note. she's just saying she could be faster and chooses not to. lowkey relatable. π
π₯ DIAGNOSTICS π₯
pay attention bestie, this one matters:
if a graph has cycles, its transitive reduction is not uniquely defined. in this case tred emits a warning.
so like, cycles = ambiguous answer = she's gonna tell you about it. not silently, not subtly. a warning. fr fr. β οΈ
π AUTHORS π
these two legends made it happen:
- Stephen C. North
<north@research.att.com> - Emden R. Gansner
<erg@research.att.com>
absolute icons. no notes. π«Άβ¨
π SEE ALSO π
go read these too, they're all part of the same friend group:
gc(1), dot(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), sccmap(1), libgraph(3)
and that's the whole page, bestie π this one's dated 21 March 2001 and it comes to you from the General Commands Manual β shoutout to the era that brought us this little transitive reduction icon. slay, stay transitive, and remember: remove the edges implied by transitivity, not the vibes. periodt. ππ¦π
π¦ where this page comes from
- alpine 3.22: graphviz-doc 12.2.1-r0 Β· EPL-1.0
- alpine 3.23: graphviz-doc 12.2.1-r0 Β· EPL-1.0
- alpine 3.24: graphviz-doc 12.2.1-r3 Β· EPL-1.0
- arch rolling: graphviz 16.1.0-2 Β· EPL
- fedora 43: graphviz 13.1.1-3.fc43 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 43: graphviz 13.1.1-3.fc43 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 43: graphviz 13.1.2-3.fc43 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 43: graphviz 13.1.2-3.fc43 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 44: graphviz 14.1.2-2.fc44 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 44: graphviz 14.1.2-2.fc44 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 44: graphviz 14.1.4-2.fc44 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- fedora 44: graphviz 14.1.4-2.fc44 Β· epl-1.0 AND cpl-1.0 AND bsd-3-clause AND mit AND gpl-3.0-or-later WITH bison-exception-2.2 AND apache-1.1 AND lgpl-2.0-or-later WITH libtool-exception AND smlnj AND hpnd-uc
- nixos 26.05: graphviz 12.2.1
- nixpkgs unstable: graphviz 15.1.1
- opensuse-leap 16.0: graphviz 12.2.1-160000.1.1 Β· EPL-1.0
- opensuse-leap 16.0: graphviz 12.2.1-160000.1.1 Β· EPL-1.0
- opensuse-leap 16.0: graphviz 12.2.1-160000.1.1 Β· EPL-1.0
- opensuse-leap 16.0: graphviz 12.2.1-160000.1.1 Β· EPL-1.0
- ubuntu resolute: graphviz-tools 14.1.2-1ubuntu1 Β· EPL-1.0
- ubuntu stonking: graphviz-tools 14.1.2-1ubuntu2 Β· EPL-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms