diff options
| author | Pierre-Marie Pédrot | 2020-03-28 07:50:23 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2020-04-03 19:32:13 +0200 |
| commit | c20139f870430d856d6b891a7129ee72d7b54ff4 (patch) | |
| tree | e4d9a86526d270a6fc8922e5405fff688280945f /kernel | |
| parent | c5c8ce135606f311834d4c0b9ac3e72be5ee4a36 (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')
0 files changed, 0 insertions, 0 deletions
