  We show how to infer deterministic cache replacement policies using
off-the-shelf automata learning and program synthesis techniques. For this, we
construct and chain two abstractions that expose the cache replacement policy
of any set in the cache hierarchy as a membership oracle to the learning
algorithm, based on timing measurements on a silicon CPU. Our experiments
demonstrate an advantage in scope and scalability over prior art and uncover 2
previously undocumented cache replacement policies.
