Crate liblisa_synth
Expand description
This library contains the default synthesis implementation for libLISA. It can be invoked as follows (for x64):
// let encoding = ...; // see the `liblisa-enc` crate
let semantics = liblisa_x64_observer::with_oracle(|mut oracle| {
liblisa_synth::synthesize_semantics(encoding, &mut oracle)
});
println!("{semantics}");
Structs§
- Output
- A synthesis output. Corresponds to a dataflow output in an
Encoding
. - Synthesis
Loop - A CEGIS synthesis loop.
- Synthesis
Result - The result of synthesis.
Traits§
- Requester
- A type that returns the output of a dataflow, given its inputs.
- Synthesizer
- A semantics synthesizer. Generic over input and output types.
- Synthesizer
Base - A semantics synthesizer.
- Synthesizer
Output - The output values used for synthesis.
These are usually
Value
s orOwnedValue
s.
Functions§
- determine_
overlapping_ write_ order - Determines the
WriteOrdering
s for anEncoding
’s outputs. - merge_
semantics_ into_ encoding - Merges the
SynthesisResult
s returned by theSynthesisLoop
into anEncoding
. - prepare_
templates - Prepares the templates needed for synthesis. If this function is not called, templates are prepared the first time synthesis is run. This may cause the first synthesis attempt to time out.
- synthesize_
from_ fn - A simple synthesizer that synthesizes a computation from a function.
- synthesize_
outputs - Synthesizes semantics for all outputs in the provided
Encoding
. - synthesize_
semantics - Synthesizes semantics for an
Encoding
.
Type Aliases§
- Default
Tree Template Synthesizer - The default synthesizer, using templates and decision trees.