start working on inner; prove concat_equiv lemma (why?)
refactor concat_equiv; start xor_equiv. not sure what to do