is => 'ro', isa => PropositionSequence, required => 1
);
-has search_state => (
- is => 'lazy', builder => sub {
- $_[0]->new_search_state_for($_[0]->proposition_sequence)
- },
+has search_process => (
+ is => 'lazy', isa => SearchProcess, builder => sub {
+ $_[0]->new_search_process_for($_[0]->proposition_sequence)
+ }, handles => { search_state => 'current_search_state' },
);
-sub new_search_state_for {
+sub new_search_process_for {
my ($self, $prop_seq) = @_;
my @local_names = map { keys %{$_->introduced_names} }
@{$prop_seq->members};
my ($self, $prop) = @_;
my $prop_seq = $self->proposition_sequence
->with_additional_proposition($prop);
- my $sol_ss = $self->new_search_state_for($prop_seq)
+ my $sol_ss = $self->new_search_process_for($prop_seq)
->find_solution;
die "No solution\n" unless $sol_ss;
$self->but(
proposition_sequence => $prop_seq,
- search_state => $sol_ss,
+ search_process => $sol_ss,
);
}
sub with_forced_backtrack {
my ($self) = @_;
- my $next_ss = $self->search_state->find_next_solution;
+ my $next_ss = $self->search_process->find_next_solution;
die "No next solution\n" unless $next_ss;
- $self->but(search_state => $next_ss);
+ $self->but(search_process => $next_ss);
}
1;