Instruction-Level Abstraction (ILA): A Uniform Specification for System-on-Chip (SoC) Verification (Full Report)