API Documentation

Metatheory

Main.Metatheory.compile_theory โ€” Method

Compile a theory to a closure that does the pattern matching job Returns a RuntimeGeneratedFunction, which does not use eval and is as fast as a regular Julia anonymous function ๐Ÿ”ฅ

Metatheory.EGraphs

Main.Metatheory.EGraphs.eval_types_in_assertions โ€” Method

When creating a theory, type assertions in the left hand contain symbols. We want to replace the type symbols with the real type values, to fully support the subtyping mechanism during pattern matching.

Metatheory.EGraphs.Schedulers

Main.Metatheory.EGraphs.Schedulers.BackoffScheduler โ€” Type

A Rewrite Scheduler that implements exponential rule backoff. For each rewrite, there exists a configurable initial match limit. If a rewrite search yield more than this limit, then we ban this rule for number of iterations, double its limit, and double the time it will be banned next time.

This seems effective at preventing explosive rules like associativity from taking an unfair amount of resources.

Metatheory.Util