I have a couple simple questions regarding LSL traits. This is correct.
Assumptions are requirements that the specifier imposes on the contexts in which traits are used.
If the definitions of the traits X and Y shown here are complete, the assumes clause means that B must be provable from Z to satisfy the requirement it imposes on the context in which Y is used. Putting aside for the moment the question of checking implies clauses, the traits listed in them are indeed inherited by parent traits. When a trait is included or assumed by another, its theory is a subset of the theory of the parent trait. When it comes to verifying the claims made in an implies clause, one has to be careful not to use circular reasoning. Hence, when checking the implications of some trait, it is safe to use the implications of a subtrait only if those implications have already been checked.