A Functional Embedding of Terms In a Spatial Hierarchy (FETISH)

Over the past year and a bit, I’ve been actively working on the problem of modeling the behavior of computer programs with higher-order functions from collected data on program inputs and outputs. Eventually, my work on this bore fruit in the form of “FETISH”, which is a systematic mechanism for deriving distribution embeddings of terms in a simple combinatory language in a manner which reflects the hierarchical relationships between the behavior of lower-order types and the higher-order function types which are built on top of them.

Here’s the current draft of the paper: FETISH Paper

(Note: I do hope to submit a revised version of this paper for publication, but it currently requires some revision. In particular, the exposition could be made much smoother and more precise, and certain minor details in the paper diverge from what is actually implemented as part of the Rust crate below, since the paper has not entirely been kept updated with respect to developments on that end.)

Additionally, I have published and documented a Rust crate which allows experimentation with FETISH: FETISH Rust library crate

Finally, here’s an alumni talk that I gave for the CWRU Math Club primarily about the process that I went through as part of investigating FETISH, but with some technical details also included:

I plan to write soon about how you can play around with FETISH with the “FETISH-INSPECTOR” and “FETISH-CONSTRUCTOR” tools which are currently up on my GitHub, but it will take a little bit of time to compose that post. For now, enjoy!

Updated: