I'm not wild about the labels "implicit" and "explicit" for mental models. "Explicit" is not bad, but "implicit" is less intuitive. IMHO, "behavioral model" is a better label.<p>With simulations (e.g. CPUs), what the OP referred to as an "implicit model" is a "behavioral model" (the results are right, but the simulation takes shortcuts). An "explicit model" is a "cycle accurate model" because the simulation goes through all the actual motions that the real target (CPU) would do.<p>Behavioral models are much faster but less detailed and sometimes less accurate. For instance, in a CPU simulator, you get estimated execution times for the code whereas for a cycle accurate model you will get actual (simulated) clock cycles that the instructions took to execute the code.