c4-project / c4f

The C4 Concurrent C Fuzzer
MIT License
13 stars 1 forks source link

Add path motion compensation #218

Open MattWindsor91 opened 3 years ago

MattWindsor91 commented 3 years ago

For both sophisticated reduction and path caching (#217), we could do with a way of saying 'how does the application, or revocation, of this action affect paths in other actions?'. To the best of my knowledge, this boils down to checking the effect of one path on another. For instance:

etc.

It should be eminently doable (though need some thought and/or theory!) to come up with some functions that calculate these path motions; then, we should be able to find a way to project them up and down a trace for reduction, and to update the cache for caching.

I imagine there'll need to be some functionality to try to work out the common subpath of two paths, and then some functionality to work out if the paths overlap from there, and so on and so forth. Sounds fun.