I am starting with a very basic olympiad-style book and a book based on Euclid's Elements, because I don't have the understanding required to clearly work out the dependencies of more advanced stuff. And I also would like to start at the beginning to make sure I don't miss anything.
The ideal end state is to have courses that cover all the undergrad and grad math curriculum. I am also curious on whether this could be used by researchers to keep up to date with the latest research on their fields. But all of that is a long way out.
As for your question, there are a couple of ways that Trane could handle multiple paths through similar material.
1. Just have separate curriculums. You could copy the courses, but the second copy has different dependencies, courses/lessons IDs. For example, one could have a series of courses teaching the undergrad MIT math curriculum and another the Harvard curriculum. They might share a lot of the material, but the order will be different.
2. Trane does not lock you into a specific order. There are filters that let you specify which parts of the graph you want to study. You are free to get questions from specific courses and lessons. You can also use the metadata in the courses to say things like "give me questions from all lessons teaching linear algebra" or "give me questions from all courses on real analysis but not from the lessons on set theory". The dependencies between the lessons that match that metadata are still respected. There are a few more options, but you get my point. The dependencies are not set in stone, and there's freedom to jump around and study specific topics.
I actually use option 2 most days. If I want to practice guitar, I just set a filter to give me exercises from the guitar. Similar thing when I want to practice the saxophone.
However, many people find it easier if you have concrete anchors, rather than making everything an abstract ivory tower. A certain kind of musician might get Fourier series quite quickly by analogy to the behaviour of sound, and then pick up Taylor series by analogy to that; somebody like me might find it easier to translate the most general Fourier series to a Maclaurin series, then compare coefficients. All these approaches would give you an understanding of Fourier, Maclaurin and Taylor series', which then lets you learn things that build upon them.
The "separate courses" approach is doable (and the best I've come up with so far), but it doesn't scale: courses that cover the same things without providing further insight don't get merged together. It can't handle the combinations that, intuitively, I feel like there should be a way to handle. Human teachers can cope with it just fine!
One nitpick on trane-math: running `cargo test` will wipe out the .trane directory, if it exists. That seems not very good; perhaps there should be a way to point trane at a temporary directory, so you can test it better?
I guess you are right. The textbooks definitely have dependencies, but that seems to be the very problem that you have with them. Unfortunately, I think other than different curriculums for each way to approach the subject, this is beyond the current scope of Trane. I made this thinking of music at first, which has a more rigid way of approaching the subject that tends to work for a wide set of students. There's no person on earth that will be comfortable studying highly chromatic music without mastering harmonically easier material first.
It's a good idea to limit the scope of your projects. Jack of all trades is a master of none, and the fact trane exists (and is GPL'd) makes it just that bit easier for me to solve the other problem.
Prerequisites for calculus: an understanding of the standard reals OR an understanding of the hyperreals. Yes, real and hyperreal analysis are radically different in many ways, but they're provably equivalent, and they get you to the same answers. Some people find one more intuitive than the other, and some problems are easier in one than the other.
Imo, the biggest issue with mathematics education is that it tries to push you down one, standardised way of thinking about things: if you don't get it, that cripples your ability to think and reason for yourself. The main thing I do in one-to-one mathematics tutoring is finding how the student thinks, and nurturing that (instead of stamping it out and replacing it with a "more formal" approach).
I'd like to see something branchy, but I haven't found a good solution. Do you have any ideas for tackling this?