Oftentimes, the output of Reduce is quite difficult to read because it has too many && and || included in it.
For example the output of Reduce[expr]//Simplify for a particular expr I had was:
(ϵc ==
0 && ((ex == 0 &&
ey == 0 && (ez ϵb !=
0 || (ez != 0 && ϵb == 0))) || (ey !=
0 && ϵb !=
0 && (nr == Sqrt[ey ϵa + ex ϵb]/Sqrt[ey] ||
nr + Sqrt[ey ϵa + ex ϵb]/Sqrt[ey] ==
0) && (ex - I ey == 0 || ex + I ey == 0)) || (ez !=
0 && ϵb ==
0 && (nr == Sqrt[ϵa] ||
nr + Sqrt[ϵa] == 0)))) || (ez ==
0 && ((ϵb ==
0 && (nr == Sqrt[ϵa] ||
nr + Sqrt[ϵa] == 0) && (ex != 0 ||
ey != 0)) || (ey != 0 && ϵb !=
0 && (nr == Sqrt[ey ϵa + ex ϵb]/Sqrt[ey] ||
nr + Sqrt[ey ϵa + ex ϵb]/Sqrt[ey] ==
0) && (ex - I ey == 0 || ex + I ey == 0))))
I was thinking it would be easier to read this if it were displayed as a tree.
However TreeForm[%] returns:
which is not much better.
Annother question suggested truncating the tree, in which case you get:

Also not great.
What I would like is to split up the tree by logic symbols, but to have the leaves of the tree be the individual equations.
How can I get the tree to terminate at equations?
As in I'd want expressions that look like nr == Sqrt[ea] to be connected in a tree of Ands and Ors.
It's difficult because the number of levels may be different for different parts of the tree.
Any ideas?


