aboutsummaryrefslogtreecommitdiff
path: root/kernel/cClosure.mli
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-03-28 07:50:23 +0100
committerPierre-Marie Pédrot2020-04-03 19:32:13 +0200
commitc20139f870430d856d6b891a7129ee72d7b54ff4 (patch)
treee4d9a86526d270a6fc8922e5405fff688280945f /kernel/cClosure.mli
parentc5c8ce135606f311834d4c0b9ac3e72be5ee4a36 (diff)
Use the kernel machine in whd_betaiota_deltazeta_for_iota_state.
There is no point in using the exaggerately inefficient Reductionops machine. We need to be call-by-name to preserve the shape of the reduced terms, as call-by-need would introduce sharing and thus at-distance effects in term refolding. Yet, the Reductionops machine is worse than that, since it performs substitutions eagerly, leading to a catastrophical performance profile. Instead, we use the kernel reduction in by-name mode to replace the Reductionops machine in whd_betaiota_deltazeta_for_iota_state with all flags on. Since the kernel is using explicit substitutions, this is algorithmically more efficient. Apart from minor differences, this should produce the same normal form. As showed by the benchmarks, this is a critical change for the odd-order proofs. Ideally, we should use delayed substitutions in the Reductionops machine as well for great profit, but due to code entanglement this is a much less self-contained change.
Diffstat (limited to 'kernel/cClosure.mli')
0 files changed, 0 insertions, 0 deletions