ok, for your first part, there is a bit of a wrinkle: we have no idea whether or not G is, in fact a finite group. Since the statement of the result you are asked to prove doesn't even make sense unless the index of A is finite, i will assume that [G:A] is finite, but i will make no assumptions as to whether [G:B] is finite, or whether |G| is finite.

So we have a finite number of cosets gA. note that every coset gA lies entirely within a coset of B, gB. since a finite number of such gA account for every element of G, there can only be at most [G:A] cosets of B (there could be fewer, because there's room in a coset of B for more than one coset of A, perhaps).

This shows that [G:B] is likewise finite (we proved this, see?).

now, let's consider cosets bA, where b is in B. The number of these is also bounded by [G:A], so [B:A] ≤ [G:A]...in particular, it is finite as well.

now [G:A] = [G:B][B:A] (THIS is actually what Lagrange's theorem says), therefore [G:B] divides [G:A].

i) this is OK. you could also just use the one-step test, let hN, kN be in H/N (so that h,k in H). then (hN)(kN)^{-1}= (hN)(k^{-1}N) = (hk^{-1}N).

since H is a subgroup hk^{-1}is in H, thus (hk^{-1})N is in H/N.

ii) this is good.