By "tree," let us mean a tree that is finite, ordered and rooted; but not necessarily binary (that is, every node can have an arbitrary number of children).
Under the definition, most mathematical formulae and expressions can be described as trees whose nodes are labelled by strings. For instance, the sentence $$\forall xy(\mathrm{equality}(\mathrm{sum}(x,y),\mathrm{sum}(y,x))$$ can be viewed as a tree whose root is labelled $\forall xy,$ with a single child that is labelled $\mathrm{equality},$ with two children both of which are labelled $\mathrm{sum},$ etc.
Is there a good free software package for producing such labelled trees?
I use Ubuntu Linux and Microsoft Windows.
There's at least three few features that I want.
Support for symbols like $\forall$, which I believe are standard HTML symbols.
More than one possible appearance for edges, e.g. dashed edges.
Motivation. To depict $\mathrm{OR}(\neg A,B)$ I'd rather draw $\mathrm{OR}(A,B)$ but with a dashed edge going to $A.$
Not only can nodes be labelled by strings, but so too can edges.
Motivation. To depict $\mathrm{prod}(x,y^n)$ I'd rather draw the tree $\mathrm{prod}(x,y)$ but with an edge labelled by $n$ going to $y.$
The sensible choice for producing documents -- articles, slides for a presentation, etc. -- including any more than a few logical symbols is of course $\LaTeX$ (which you can install under both Windows and Linux, as well as OSX.)
The website http://latexforlogicians.net (which isn't just for logicians) gives lots of information, including recommendations of packages for producing labelled trees in $\LaTeX$ documents. Look at the page on Tree/Tableau Proofs.