HerbConstraints.check_tree
— Methodcheck_tree(c::Contains, tree::AbstractRuleNode)::Bool
Checks if the given AbstractRuleNode
tree abides the Contains
constraint.
diff --git a/previews/PR115/.documenter-siteinfo.json b/previews/PR115/.documenter-siteinfo.json
index 3541ed9..8f9c741 100644
--- a/previews/PR115/.documenter-siteinfo.json
+++ b/previews/PR115/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-14T12:17:20","documenter_version":"1.8.0"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-14T12:18:48","documenter_version":"1.8.0"}}
\ No newline at end of file
diff --git a/previews/PR115/HerbConstraints/index.html b/previews/PR115/HerbConstraints/index.html
index 18db4f2..947384f 100644
--- a/previews/PR115/HerbConstraints/index.html
+++ b/previews/PR115/HerbConstraints/index.html
@@ -23,4 +23,4 @@
set_value!(a, 9) #backup value 10
set_value!(a, 8) #no need to backup again
set_value!(a, 3) #no need to backup again
-restore!(sm) #restores a to value 10source Checks if the given Checks if the given Checks if the given Checks if the given Checks if the given Checks if the given Checks if an Function that should be called whenever the constraint is already satisfied and never has to be repropagated. Function that should be called whenever the constraint is already satisfied and never has to be repropagated. Decrease the value of the integer by 1 Propagate constraints in the current state until no further dedecutions can be made Converts a [ Get the grammar. Get the grammar. Get the node at path Get the hole that is located at the provided Returns all the values that are in both Get the maximum depth of the tree. Get the maximum number of Return an iterator over all nodes in the tree Gets a list of nodes on the Used to determine which constraint to propagate first in Get the symbol from the solver. Get the current [ Returns the number of Get the root of the tree. This remains the same instance throughout the entire search. Returns the number of Get the value of the stateful integer Increase the value of the integer by 1 Checks if the Checks if Returns true if no inconsistency has been detected. Used in several ways: Returns true if no inconsistency has been detected. Overwrites the current state with the given Tree manipulation that enforces Helper function that keeps track of the guards Ensures that n1<=n2 by removing impossible values from holes. Returns one of the following results: Helper function that tiebreaks on children. Overwrites the current state and propagates constraints on the Notify all constraints that a new node has appeared at the This does not notify the solver about nodes below the Notify all grammar constraints about the new Notify all grammar constraints about the new Notify subscribed constraints that a tree manipulation has occured at the Notify subscribed constraints that a tree manipulation has occured at the Partition a Hole into subdomains grouped by childtypes Generic fallback function for commutativity. Swaps arguments 1 and 2, then dispatches to a more specific signature. If this gets stuck in an infinite loop, the implementation of an AbstractRuleNode type pair is missing. Recursively tries to match Comparing any Comparing any Comparing any pair of Pairwise tries to match two ordered lists of AbstractRuleNodes. Typically, this function is used to pattern match the children two AbstractRuleNodes. Imposes the Post a new local constraint. Converts the constraint to a state constraint and schedules it for propagation. !!! warning: LocalContainsSubtree uses stateful properties and can therefore not be propagated in the GenericSolver. (The GenericSolver shares constraints among different states, so they cannot use stateful properties) Enforce that the Enforce that the forbidden Enforce that the Enforce that the Enforce that the Remove Remove all Removes value Remove Remove all Reduce the domain of the hole located at the Remove all the values greater than Reduce the domain of the hole located at the Reduce the domain of the hole located at the Fill in the hole located at the !!! warning: If the Removes all values from StateSparseSet Fill in the hole located at the Reduce the domain of the hole located at the Remove all the values less than Reduce the domain of the hole located at the Remove the node at the given Restores the Reverts all the backups since the last Restore state of the solver until the last Returns a copy of the current state that can be restored by calling Make a backup of the current state. Return to this state by calling Save the current state of the solver, can restored using Schedules the Function to be called if any inconsistency has been detected Function to be called if any inconsistency has been detected Set the value of the integer to the given Function that is called when a tree manipulation occured at the Default behavior: return true iff the manipulation happened at or below the constraint path. Return true iff the manipulation happened at or above the constraint path. Takes a Hole and tries to simplify it to a UniformHole or RuleNode. If the domain of the hole is empty, the state will be marked as infeasible Substitute the node at the Domain increasing substitutions are substitutions that cannot be achieved by repeatedly removing values from domains. Example of an domain increasing event: Returns true if the Get the node at path Get the node that is located at the provided Get the path at which the Get the path at which the Assuming the hole has domain size 1, get the rule it is currently assigned to. Holes with domain size 1 are fixed to a rule. Returns whether the hole has domain size 1. (holes with an empty domain are not considered to be fixed)HerbConstraints.check_tree
— Methodcheck_tree(c::Contains, tree::AbstractRuleNode)::Bool
AbstractRuleNode
tree abides the Contains
constraint.HerbConstraints.check_tree
— Methodcheck_tree(c::ContainsSubtree, tree::AbstractRuleNode)::Bool
AbstractRuleNode
tree abides the ContainsSubtree
constraint.HerbConstraints.check_tree
— Methodcheck_tree(c::Forbidden, tree::AbstractRuleNode)::Bool
AbstractRuleNode
tree abides the Forbidden
constraint.HerbConstraints.check_tree
— Methodcheck_tree(c::ForbiddenSequence, tree::AbstractRuleNode; sequence_started=false)::Bool
AbstractRuleNode
tree abides the ForbiddenSequence
constraint.HerbConstraints.check_tree
— Methodcheck_tree(c::Ordered, tree::AbstractRuleNode)::Bool
AbstractRuleNode
tree abides the Ordered
constraint.HerbConstraints.check_tree
— Methodfunction check_tree(c::Unique, tree::AbstractRuleNode)::Bool
AbstractRuleNode
tree abides the Unique
constraint.HerbConstraints.contains_varnode
— Methodcontains_varnode(rn::AbstractRuleNode, name::Symbol)
AbstractRuleNode
tree contains a VarNode
with the given name
.HerbConstraints.deactivate!
— Methoddeactivate!(solver::GenericSolver, constraint::AbstractLocalConstraint)
HerbConstraints.deactivate!
— Methoddeactivate!(solver::UniformSolver, constraint::AbstractLocalConstraint)
HerbConstraints.decrement!
— MethodHerbConstraints.fix_point!
— Methodfix_point!(solver::Solver)
HerbConstraints.freeze_state
— Methodfreeze_state(hole::StateHole)::RuleNode
StateHole
])(@ref) to a [RuleNode
]@(ref). The hole and its children are assumed to be filled.HerbConstraints.get_grammar
— Methodfunction get_grammar(solver::GenericSolver)::AbstractGrammar
HerbConstraints.get_grammar
— Methodfunction get_grammar(solver::UniformSolver)::AbstractGrammar
HerbConstraints.get_hole_at_location
— Methodget_hole_at_location(solver::GenericSolver, location::Vector{Int})::AbstractHole
location
and assert it is a AbstractHole
.HerbConstraints.get_hole_at_location
— Methodget_hole_at_location(solver::UniformSolver, path::Vector{Int})
path
.HerbConstraints.get_intersection
— Methodget_intersection(domain1::BitVector, domain2::BitVector)::Bool
domain1
and domain2
HerbConstraints.get_max_depth
— Methodfunction get_max_depth(solver::GenericSolver)::SolverState
HerbConstraints.get_max_size
— Methodfunction get_max_depth(solver::GenericSolver)::SolverState
AbstractRuleNode
s allowed inside the tree.HerbConstraints.get_nodes
— Methodget_nodes(solver)
HerbConstraints.get_nodes_on_path
— Methodfunction get_nodes_on_path(root::AbstractRuleNode, path::Vector{Int})::Vector{AbstractRuleNode}
path
, starting (and including) the root
.HerbConstraints.get_priority
— Methodfunction get_priority(::AbstractLocalConstraint)
fix_point!
. Constraints with fast propagators and/or strong inference should be propagated first.HerbConstraints.get_starting_symbol
— Methodfunction get_starting_symbol(solver::GenericSolver)::Symbol
HerbConstraints.get_state
— Methodfunction get_state(solver::GenericSolver)::SolverState
SolverState
]@(ref) of the solver.HerbConstraints.get_tree
— Methodfunction get_tree(solver::GenericSolver)::AbstractRuleNode
AbstractRuleNode
s in the tree.HerbConstraints.get_tree
— Methodfunction get_tree(solver::UniformSolver)::AbstractRuleNode
HerbConstraints.get_tree_size
— Methodfunction get_tree_size(solver::GenericSolver)::Int
AbstractRuleNode
s in the tree.HerbConstraints.get_value
— MethodHerbConstraints.increment!
— MethodHerbConstraints.is_subdomain
— Methodis_subdomain(specific_tree::AbstractRuleNode, general_tree::AbstractRuleNode)
specific_tree
can be obtained by repeatedly removing values from the general_tree
HerbConstraints.is_subdomain
— Method is_subdomain(subdomain::BitVector, domain::BitVector)
subdomain
is a subdomain of domain
. Example: [0, 0, 1, 0] is a subdomain of [0, 1, 1, 1]HerbConstraints.isfeasible
— Methodisfeasible(solver::GenericSolver)
remove_below!
, remove_above!
, remove!
)fix_point!
should check for infeasibility to clear its schedule and returnGenericSolver
functions assert a feasible state for debugging purposes @assert isfeasible(solver)
GenericSolver
functions have a guard that skip the function on an infeasible state: if !isfeasible(solver) return end
HerbConstraints.isfeasible
— Methodisfeasible(solver::UniformSolver)
HerbConstraints.load_state!
— Methodload_state!(solver::GenericSolver, state::SolverState)
state
HerbConstraints.make_equal!
— Methodfunction make_equal!(solver::Solver, node1::AbstractRuleNode, node2::AbstractRuleNode)::MakeEqualResult
node1
== node2
if unambiguous.HerbConstraints.make_less_than_or_equal!
— Methodfunction make_less_than_or_equal!(h1::Union{RuleNode, AbstractHole}, h2::Union{RuleNode, AbstractHole}, guards::Vector{Tuple{AbstractHole, Int}})::LessThanOrEqualResult
HerbConstraints.make_less_than_or_equal!
— Methodfunction make_less_than_or_equal!(h1::Union{RuleNode, AbstractHole}, h2::Union{RuleNode, AbstractHole})::LessThanOrEqualResult
LessThanOrEqualSuccess
. When [n1<=n2].LessThanOrEqualHardFail
. When [n1>n2] or when the solver state is infeasible.LessThanOrEqualSoftFail
. When no further deductions can be made, but [n1<=n2] and [n1>n2] are still possible.HerbConstraints.make_less_than_or_equal!
— Methodfunction make_less_than_or_equal!(solver::Solver, nodes1::Vector{AbstractRuleNode}, nodes2::Vector{AbstractRuleNode}, guards::Vector{Tuple{AbstractHole, Int}})::LessThanOrEqualResult
HerbConstraints.new_state!
— Methodnew_state!(solver::GenericSolver, tree::AbstractRuleNode)
tree
from the ground upHerbConstraints.notify_new_node
— Methodnotify_new_node(solver::GenericSolver, event_path::Vector{Int})
event_path
by calling their respective on_new_node
function.event_path
. In that case, call notify_new_nodes
instead.HerbConstraints.notify_new_nodes
— Methodnotify_new_nodes(solver::GenericSolver, node::AbstractRuleNode, path::Vector{Int})
node
and its (grand)childrenHerbConstraints.notify_new_nodes
— Methodnotify_new_nodes(solver::UniformSolver, node::AbstractRuleNode, path::Vector{Int})
node
and its (grand)childrenHerbConstraints.notify_tree_manipulation
— Methodnotify_tree_manipulation(solver::GenericSolver, event_path::Vector{Int})
event_path
by scheduling them for propagationHerbConstraints.notify_tree_manipulation
— Methodnotify_tree_manipulation(solver::UniformSolver, event_path::Vector{Int})
event_path
by scheduling them for propagationHerbConstraints.partition
— Methodpartition(hole::Hole, grammar::ContextSensitiveGrammar)::Vector{BitVector}
HerbConstraints.pattern_match
— MethodHerbConstraints.pattern_match
— Methodpattern_match(rn::AbstractRuleNode, mn::AbstractRuleNode)::PatternMatchResult
AbstractRuleNode
rn
with AbstractRuleNode
mn
. Returns a PatternMatchResult
that describes if the pattern was matched.HerbConstraints.pattern_match
— Methodpattern_match(node::AbstractRuleNode, domainrulenode::DomainRuleNode, vars::Dict{Symbol, AbstractRuleNode})::PatternMatchResult
AbstractRuleNode
with a DomainRuleNode
HerbConstraints.pattern_match
— Methodpattern_match(rn::AbstractRuleNode, var::VarNode, vars::Dict{Symbol, AbstractRuleNode})::PatternMatchResult
AbstractRuleNode
with a named VarNode
HerbConstraints.pattern_match
— Methodpattern_match(h1::Union{RuleNode, AbstractHole}, h2::Union{RuleNode, AbstractHole}, vars::Dict{Symbol, AbstractRuleNode})::PatternMatchResult
Rulenode
and/or AbstractHole
. It is important to note that some AbstractHole
s are already filled and should be treated as RuleNode
. This is why this function is dispatched on (isfilled(h1), isfilled(h2))
. The '(RuleNode, AbstractHole)' case could still include two nodes of type AbstractHole
, but one of them should be treated as a rulenode.HerbConstraints.pattern_match
— Methodpattern_match(rns::Vector{AbstractRuleNode}, mns::Vector{AbstractRuleNode}, vars::Dict{Symbol, AbstractRuleNode})::PatternMatchResult
HerbConstraints.post!
— Methodpost!(solver::GenericSolver, constraint::AbstractLocalConstraint)
constraint
to the current state. By default, the constraint will be scheduled for its initial propagation. Constraints can overload this method to add themselves to notify lists or triggers.HerbConstraints.post!
— Methodpost!(solver::UniformSolver, constraint::AbstractLocalConstraint)
HerbConstraints.propagate!
— Methodfunction propagate!(::GenericSolver, ::LocalContainsSubtree)
HerbConstraints.propagate!
— Methodfunction propagate!(solver::Solver, c::LocalContains)
rule
appears at or below the path
at least once. Uses a helper function to retrieve a list of holes that can potentially hold the target rule. If there is only a single hole that can potentially hold the target rule, that hole will be filled with that rule.HerbConstraints.propagate!
— Methodfunction propagate!(solver::Solver, c::LocalForbiddenSequence)
HerbConstraints.propagate!
— Methodfunction propagate!(solver::Solver, c::LocalForbidden)
tree
does not occur at the path
. The forbidden tree is matched against the AbstractRuleNode
located at the path. Deductions are based on the type of the PatternMatchResult
returned by the pattern_match
function.HerbConstraints.propagate!
— Methodfunction propagate!(solver::Solver, c::LocalOrdered)
VarNode
s in the tree
are in the specified order
. First the node located at the path
is matched to see if the ordered constraint applies here. The nodes matching the variables are stored in the vars
dictionary. Then the order
is enforced within the make_less_than_or_equal!
tree manipulation. HerbConstraints.propagate!
— Methodfunction propagate!(solver::Solver, c::LocalUnique)
rule
appears at or below the path
at least once. Uses a helper function to retrieve a list of holes that can potentially hold the target rule. If there is only a single hole that can potentially hold the target rule, that hole will be filled with that rule.HerbConstraints.propagate!
— Methodfunction propagate!(solver::UniformSolver, c::LocalContainsSubtree)
tree
appears at or below the path
at least once. Nodes that can potentially become the target sub-tree are considered candidates
. In case of multiple candidates, a stateful set of indices
is used to keep track of active candidates.HerbConstraints.remove!
— Methodremove!(solver::GenericSolver, path::Vector{Int}, rule_index::Int)
rule_index
from the domain of the hole located at the path
. It is assumed the path points to a hole, otherwise an exception will be thrown.HerbConstraints.remove!
— Methodremove!(solver::GenericSolver, path::Vector{Int}, rules::Vector{Int})
rules
from the domain of the hole located at the path
. It is assumed the path points to a hole, otherwise an exception will be thrown.HerbConstraints.remove!
— Methodremove!(set::StateSparseSet, val::Int)
val
from StateSparseSet set
. Returns true if val
was in set
.HerbConstraints.remove!
— Methodremove!(solver::Solver, path::Vector{Int}, rule_index::Int)
rule_index
from the domain of the hole located at the path
. It is assumed the path points to a hole, otherwise an exception will be thrown.HerbConstraints.remove!
— Methodremove!(solver::UniformSolver, path::Vector{Int}, rules::Vector{Int})
rules
from the domain of the hole located at the path
. It is assumed the path points to a hole, otherwise an exception will be thrown.HerbConstraints.remove_above!
— Methodremove_above!(solver::GenericSolver, path::Vector{Int}, rule_index::Int)
path
by removing all rules indices above rule_index
Example: rule_index
= 2. hole
with domain [1, 1, 0, 1] gets reduced to [1, 0, 0, 0] and gets simplified to a RuleNode
HerbConstraints.remove_above!
— Methodval
from the set
HerbConstraints.remove_above!
— Methodremove_above!(solver::UniformSolver, path::Vector{Int}, rule_index::Int)
path
by removing all rules indices above rule_index
Example: rule_index
= 2. hole
with domain {1, 2, 4} gets reduced to {1}HerbConstraints.remove_all_but!
— Methodremove_all_but!(solver::GenericSolver, path::Vector{Int}, new_domain::BitVector)
path
, to the new_domain
. It is assumed the path points to a hole, otherwise an exception will be thrown. It is assumed new_domain ⊆ domain. For example: [1, 0, 1, 0] ⊆ [1, 0, 1, 1]HerbConstraints.remove_all_but!
— Methodremove_all_but!(solver::GenericSolver, path::Vector{Int}, rule_index::Int)
path
with rule rule_index
. It is assumed the path points to a hole, otherwise an exception will be thrown. It is assumed rule_index ∈ hole.domain.hole
is known to be in the current tree, the hole can be passed directly. The caller has to make sure that the hole instance is actually present at the provided path
.HerbConstraints.remove_all_but!
— Methodremove_all_but!(set::StateSparseSet, val::Int)::Bool
set
, except val
HerbConstraints.remove_all_but!
— Methodremove_all_but!(solver::UniformSolver, path::Vector{Int}, rule_index::Int)
path
with rule rule_index
.HerbConstraints.remove_below!
— Methodremove_below!(solver::GenericSolver, path::Vector{Int}, rule_index::Int)
path
by removing all rules indices below rule_index
Example: rule_index
= 2. hole
with domain [1, 1, 0, 1] gets reduced to [0, 1, 0, 1]HerbConstraints.remove_below!
— Methodval
from the set
HerbConstraints.remove_below!
— Methodremove_below!(solver::UniformSolver, path::Vector{Int}, rule_index::Int)
path
by removing all rules indices below rule_index
Example: rule_index
= 2. hole
with domain {1, 2, 4} gets reduced to {2, 4}HerbConstraints.remove_node!
— Methodfunction remove_node!(solver::GenericSolver, path::Vector{Int})
path
by substituting it with a hole of the same symbol.HerbConstraints.restore!
— MethodStateInt
stored in the StateIntBackup
to its original valueHerbConstraints.restore!
— Methodsave_state!
.HerbConstraints.restore!
— Methodsave_state!
HerbConstraints.save_state!
— Methodsave_state!(solver::GenericSolver)
load_state!(solver, state)
HerbConstraints.save_state!
— Methodrestore!
.HerbConstraints.save_state!
— Methodrestore!
HerbConstraints.schedule!
— Methodschedule(solver::GenericSolver, constraint::AbstractLocalConstraint)
constraint
for propagation.HerbConstraints.set_infeasible!
— Methodset_infeasible!(solver::GenericSolver)
HerbConstraints.set_infeasible!
— Methodset_infeasible!(solver::Solver)
HerbConstraints.set_value!
— Methodval
HerbConstraints.shouldschedule
— Methodshouldschedule(solver::Solver, constraint::AbstractLocalConstraint, path::Vector{Int})::Bool
path
. Returns true if the constraint
should be scheduled for propagation.HerbConstraints.shouldschedule
— Methodshouldschedule(::Solver, constraint::LocalForbiddenSequence, path::Vector{Int})::Bool
HerbConstraints.simplify_hole!
— Methodsimplify_hole!(solver::GenericSolver, path::Vector{Int})
HerbConstraints.substitute!
— Methodsubstitute!(solver::GenericSolver, path::Vector{Int}, new_node::AbstractRuleNode; is_domain_increasing::Union{Nothing, Bool}=nothing)
path
, with a new_node
.is_domain_increasing
: indicates if all grammar constraints should be repropagated from the ground up.hole[{3, 4, 5}] -> hole[{1, 2}]
. Example of an domain decreasing event: hole[{3, 4, 5}] -> rulenode(4, [hole[{1, 2}], rulenode(1)])
.HerbCore.contains_hole
— Methodcontains_hole(hole::StateHole)::Bool
hole
or any of its (grand)children are not filled.HerbCore.get_node_at_location
— MethodHerbCore.get_node_at_location(solver::GenericSolver, location::Vector{Int})::AbstractRuleNode
location
.HerbCore.get_node_at_location
— Methodget_node_at_location(solver::UniformSolver, path::Vector{Int})
path
.HerbCore.get_path
— Methodget_path(solver::GenericSolver, node::AbstractRuleNode)
node
is located.HerbCore.get_path
— Methodget_path(solver::UniformSolver, node::AbstractRuleNode)
node
is located.HerbCore.get_rule
— Methodget_rule(hole::StateHole)::Int
HerbCore.isfilled
— Methodisfilled(hole::StateHole)::Bool
HerbConstraints.AbstractGrammarConstraint
HerbConstraints.AbstractLocalConstraint
HerbConstraints.AbstractStateManager
HerbConstraints.Contains
HerbConstraints.ContainsSubtree
HerbConstraints.DomainRuleNode
HerbConstraints.Forbidden
HerbConstraints.ForbiddenSequence
HerbConstraints.GenericSolver
HerbConstraints.GenericSolver
HerbConstraints.GenericSolver
HerbConstraints.LessThanOrEqualHardFail
HerbConstraints.LessThanOrEqualResult
HerbConstraints.LessThanOrEqualSoftFail
HerbConstraints.LessThanOrEqualSuccess
HerbConstraints.LessThanOrEqualSuccessEquality
HerbConstraints.LessThanOrEqualSuccessLessThan
HerbConstraints.LessThanOrEqualSuccessWithHoles
HerbConstraints.LocalContains
HerbConstraints.LocalContainsSubtree
HerbConstraints.LocalContainsSubtree
HerbConstraints.LocalForbidden
HerbConstraints.LocalForbiddenSequence
HerbConstraints.LocalOrdered
HerbConstraints.LocalUnique
HerbConstraints.MakeEqualHardFail
HerbConstraints.MakeEqualResult
HerbConstraints.MakeEqualSoftFail
HerbConstraints.MakeEqualSuccess
HerbConstraints.Ordered
HerbConstraints.PatternMatchHardFail
HerbConstraints.PatternMatchResult
HerbConstraints.PatternMatchSoftFail
HerbConstraints.PatternMatchSuccess
HerbConstraints.PatternMatchSuccessWhenHoleAssignedTo
HerbConstraints.Solver
HerbConstraints.SolverState
HerbConstraints.SolverStatistics
HerbConstraints.StateHole
HerbConstraints.StateHole
HerbConstraints.StateHole
HerbConstraints.StateInt
HerbConstraints.StateIntBackup
HerbConstraints.StateManager
HerbConstraints.StateSparseSet
HerbConstraints.StateSparseSet
HerbConstraints.StateStack
HerbConstraints.StateStack
HerbConstraints.StateStack
HerbConstraints.UniformSolver
HerbConstraints.UniformSolver
HerbConstraints.Unique
HerbConstraints.VarNode
HerbCore.AbstractConstraint
HerbCore.AbstractGrammar
HerbCore.AbstractHole
HerbCore.AbstractRuleNode
HerbCore.AbstractUniformHole
HerbCore.Hole
HerbCore.HoleReference
HerbCore.RuleNode
HerbCore.RuleNode
HerbCore.RuleNode
HerbCore.UniformHole
HerbGrammar.ContextSensitiveGrammar
HerbGrammar.NodeLoc
HerbGrammar.SymbolTable
HerbGrammar.SymbolTable
HerbSearch.BFSIterator
HerbSearch.DFSIterator
HerbSearch.ExpandFailureReason
HerbSearch.FixedShapedIterator
HerbSearch.GeneticSearchIterator
HerbSearch.MHSearchIterator
HerbSearch.MLFSIterator
HerbSearch.ProgramIterator
HerbSearch.RandomIterator
HerbSearch.SASearchIterator
HerbSearch.StochasticSearchIterator
HerbSearch.SynthResult
HerbSearch.TopDownIterator
HerbSearch.UniformIterator
HerbSearch.UniformIterator
HerbSearch.VLSNSearchIterator
HerbSpecification.AbstractDependentTypeSpecification
HerbSpecification.AgdaSpecification
HerbSpecification.IOExample
HerbSpecification.MetricProblem
HerbSpecification.Problem
HerbSpecification.SMTSpecification
HerbSpecification.Trace
Base.collect
Base.collect
Base.findall
Base.findfirst
Base.findlast
Base.get
Base.getindex
Base.getindex
Base.in
Base.in
Base.insert!
Base.isless
Base.iterate
Base.iterate
Base.iterate
Base.iterate
Base.iterate
Base.iterate
Base.iterate
Base.length
Base.length
Base.length
Base.length
Base.push!
Base.rand
Base.rand
Base.rand
Base.show
Base.size
Base.size
Base.sum
HerbConstraints._contains
HerbConstraints._count_occurrences
HerbConstraints._count_occurrences
HerbConstraints._count_occurrences!
HerbConstraints._exchange_positions!
HerbConstraints._update_bounds_val_removed!
HerbConstraints._update_max_val_removed!
HerbConstraints._update_min_val_removed!
HerbConstraints.annotation2constraint
HerbConstraints.are_disjoint
HerbConstraints.are_disjoint
HerbConstraints.backup!
HerbConstraints.check_tree
HerbConstraints.check_tree
HerbConstraints.check_tree
HerbConstraints.check_tree
HerbConstraints.check_tree
HerbConstraints.check_tree
HerbConstraints.contains_varnode
HerbConstraints.deactivate!
HerbConstraints.deactivate!
HerbConstraints.decrement!
HerbConstraints.fix_point!
HerbConstraints.freeze_state
HerbConstraints.get_grammar
HerbConstraints.get_grammar
HerbConstraints.get_hole_at_location
HerbConstraints.get_hole_at_location
HerbConstraints.get_intersection
HerbConstraints.get_max_depth
HerbConstraints.get_max_size
HerbConstraints.get_nodes
HerbConstraints.get_nodes_on_path
HerbConstraints.get_priority
HerbConstraints.get_starting_symbol
HerbConstraints.get_state
HerbConstraints.get_tree
HerbConstraints.get_tree
HerbConstraints.get_tree_size
HerbConstraints.get_value
HerbConstraints.increment!
HerbConstraints.is_subdomain
HerbConstraints.is_subdomain
HerbConstraints.isfeasible
HerbConstraints.isfeasible
HerbConstraints.load_state!
HerbConstraints.make_equal!
HerbConstraints.make_less_than_or_equal!
HerbConstraints.make_less_than_or_equal!
HerbConstraints.make_less_than_or_equal!
HerbConstraints.new_state!
HerbConstraints.notify_new_node
HerbConstraints.notify_new_nodes
HerbConstraints.notify_new_nodes
HerbConstraints.notify_tree_manipulation
HerbConstraints.notify_tree_manipulation
HerbConstraints.partition
HerbConstraints.pattern_match
HerbConstraints.pattern_match
HerbConstraints.pattern_match
HerbConstraints.pattern_match
HerbConstraints.pattern_match
HerbConstraints.pattern_match
HerbConstraints.post!
HerbConstraints.post!
HerbConstraints.propagate!
HerbConstraints.propagate!
HerbConstraints.propagate!
HerbConstraints.propagate!
HerbConstraints.propagate!
HerbConstraints.propagate!
HerbConstraints.propagate!
HerbConstraints.remove!
HerbConstraints.remove!
HerbConstraints.remove!
HerbConstraints.remove!
HerbConstraints.remove!
HerbConstraints.remove_above!
HerbConstraints.remove_above!
HerbConstraints.remove_above!
HerbConstraints.remove_all_but!
HerbConstraints.remove_all_but!
HerbConstraints.remove_all_but!
HerbConstraints.remove_all_but!
HerbConstraints.remove_below!
HerbConstraints.remove_below!
HerbConstraints.remove_below!
HerbConstraints.remove_node!
HerbConstraints.restore!
HerbConstraints.restore!
HerbConstraints.restore!
HerbConstraints.save_state!
HerbConstraints.save_state!
HerbConstraints.save_state!
HerbConstraints.schedule!
HerbConstraints.set_infeasible!
HerbConstraints.set_infeasible!
HerbConstraints.set_value!
HerbConstraints.shouldschedule
HerbConstraints.shouldschedule
HerbConstraints.simplify_hole!
HerbConstraints.substitute!
HerbCore.contains_hole
HerbCore.contains_hole
HerbCore.contains_nonuniform_hole
HerbCore.depth
HerbCore.get_children
HerbCore.get_node_at_location
HerbCore.get_node_at_location
HerbCore.get_node_at_location
HerbCore.get_node_at_location
HerbCore.get_path
HerbCore.get_path
HerbCore.get_path
HerbCore.get_rule
HerbCore.get_rule
HerbCore.get_rulesequence
HerbCore.hasdynamicvalue
HerbCore.have_same_shape
HerbCore.isfilled
HerbCore.isfilled
HerbCore.isuniform
HerbCore.node_depth
HerbCore.number_of_holes
HerbCore.rulesoftype
HerbCore.rulesonleft
HerbCore.swap_node
HerbCore.swap_node
HerbGrammar.add_rule!
HerbGrammar.add_rule!
HerbGrammar.addconstraint!
HerbGrammar.child_types
HerbGrammar.child_types
HerbGrammar.cleanup_removed_rules!
HerbGrammar.clearconstraints!
HerbGrammar.containedin
HerbGrammar.contains_returntype
HerbGrammar.expr2csgrammar
HerbGrammar.expr2pcsgrammar
HerbGrammar.get_childtypes
HerbGrammar.get_domain
HerbGrammar.get_domain
HerbGrammar.get_rulesequence
HerbGrammar.iscomplete
HerbGrammar.iseval
HerbGrammar.iseval
HerbGrammar.iseval
HerbGrammar.isprobabilistic
HerbGrammar.isterminal
HerbGrammar.isterminal
HerbGrammar.isterminal
HerbGrammar.isvariable
HerbGrammar.isvariable
HerbGrammar.isvariable
HerbGrammar.isvariable
HerbGrammar.log_probability
HerbGrammar.max_arity
HerbGrammar.merge_grammars!
HerbGrammar.mindepth
HerbGrammar.mindepth_map
HerbGrammar.nchildren
HerbGrammar.nchildren
HerbGrammar.nonterminals
HerbGrammar.normalize!
HerbGrammar.parse_probabilistic_rule
HerbGrammar.probability
HerbGrammar.read_csg
HerbGrammar.read_pcsg
HerbGrammar.remove_rule!
HerbGrammar.return_type
HerbGrammar.return_type
HerbGrammar.return_type
HerbGrammar.root_node_loc
HerbGrammar.rulenode2expr
HerbGrammar.rulenode_log_probability
HerbGrammar.rulesoftype
HerbGrammar.rulesoftype
HerbGrammar.rulesoftype
HerbGrammar.rulesonleft
HerbGrammar.store_csg
HerbGrammar.subsequenceof
HerbGrammar.swap_node
HerbGrammar.swap_node
HerbInterpret.evaluate_program
HerbInterpret.execute_on_input
HerbInterpret.execute_on_input
HerbInterpret.execute_on_input
HerbInterpret.execute_on_input
HerbInterpret.interpret
HerbInterpret.test_all_examples
HerbInterpret.test_examples
HerbSearch._calculate_cost
HerbSearch._find_next_complete_tree
HerbSearch._find_next_complete_tree
HerbSearch.best_accept
HerbSearch.calculate_cost
HerbSearch.const_temperature
HerbSearch.constructNeighbourhood
HerbSearch.constructNeighbourhoodRuleSubset
HerbSearch.cross_over
HerbSearch.crossover_swap_children_1
HerbSearch.crossover_swap_children_2
HerbSearch.decreasing_temperature
HerbSearch.default_fitness
HerbSearch.derivation_heuristic
HerbSearch.derivation_heuristic
HerbSearch.enumerate_neighbours_propose
HerbSearch.evaluate
HerbSearch.extract_name_from_argument
HerbSearch.fitness
HerbSearch.generate_branches
HerbSearch.get_best_program
HerbSearch.heuristic_leftmost
HerbSearch.heuristic_leftmost_fixed_shaped_hole
HerbSearch.heuristic_random
HerbSearch.heuristic_rightmost
HerbSearch.heuristic_smallest_domain
HerbSearch.hole_heuristic
HerbSearch.hole_heuristic
HerbSearch.is_field_decl
HerbSearch.is_kwdef
HerbSearch.mean_squared_error
HerbSearch.misclassification
HerbSearch.mutate!
HerbSearch.mutate_random!
HerbSearch.next_solution!
HerbSearch.priority_function
HerbSearch.priority_function
HerbSearch.priority_function
HerbSearch.priority_function
HerbSearch.priority_function
HerbSearch.priority_function
HerbSearch.probabilistic_accept
HerbSearch.probabilistic_accept_with_temperature
HerbSearch.probabilistic_accept_with_temperature_fraction
HerbSearch.processkwarg!
HerbSearch.random_fill_propose
HerbSearch.select_chromosome
HerbSearch.select_fitness_proportional_parents
HerbSearch.select_parents
HerbSearch.set_stateholes!
HerbSearch.synth
HerbSearch.validate_iterator
StatsBase.sample
StatsBase.sample
StatsBase.sample
StatsBase.sample
HerbConstraints.@csgrammar_annotated
HerbGrammar.@cfgrammar
HerbGrammar.@csgrammar
HerbGrammar.@pcsgrammar
HerbSearch.@programiterator
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 14 November 2024. Using Julia version 1.11.1.