0
$\begingroup$

Recently this question came up, and I've been unable to find a concrete answer.

When I was reading this paper on CRDTs, I was a little perplexed by the notion of emulation here in theorems 3.1 and 3.2. It seems like emulation means "take object $O_1$ and produce a mapping $f$ to yield object $O_2 = f(O_1)$ with some properties". But, it's not clear why we could not use some trivial mapping to do this. An explicit definition is not given, and I'm not sure what the best analogy is. It's almost like a reduction mapping? (To be clear, I am not especially interested in this exact example, rather I want to understand emulation in general.)

On the other hand, I feel that I understand simulation. It says that one system simulates another if it can do (at least!) everything the original system can. This is precisely defined in terms of labeled transition systems, which is very nice. I'm familiar with homomorphisms between systems, and bisimulations, as well.

These concepts of emulation and simulation feel intimately related, but different, and I'm unaware of any formal notions of "emulation". At least, notions which use the explicit term "emulation". Is there an intuitive difference? Is there a technical one? Perhaps in terms of transition systems?

$\endgroup$
1
  • 1
    $\begingroup$ It's a fairly recent article, if you don't get an answer here you can try asking one of the authors directly (by email) $\endgroup$ May 11, 2023 at 20:39

1 Answer 1

1
$\begingroup$

In plain language, emulation means the new system performs in exactly the same way as the emulated system.

Simulation means the new system performs in roughly equivalent way as the simulated system.

e.g. 8086 emulator (it returns precisely the same results for the same input as a 8086 processor) and analog circuit simulator (SPICE, which could have deviations and even unbound errors from the actual circuit behavior)

In context of the referred paper, I don't see apparent difference between "emulation" and the well understood "simulation" of state machines.

$\endgroup$
1
  • $\begingroup$ what bothers me a little is that the emulated object is not really tied to the original object in some way. The authors produced a mapping $f$ from object $O$ to some object $f(O)$, but the plain language specification of "the new system performs in exactly the same way as the emulated system" is somehow not formalized. I can deduce that this should be the case based on their argument, but there's no actual proof of some fact like $O \sim f(O)$ where $\sim$ is some defined "simulation relation". Does that make sense? $\endgroup$ May 16, 2023 at 20:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.