action_policy => $ap,
);
+ my $pseq = DX::PropositionSequence->new(
+ members => \@recheck,
+ external_names => {},
+ internal_names => {},
+ );
+
trace 'step.recheck.hyp' => $hyp;
- my $ss = DX::SearchState->new_for($hyp);
+ my $ss = DX::SearchState->new_for($hyp, $pseq);
my $sol_ss = $ss->find_solution;
action_applications => [],
action_policy => DX::ActionPolicy::Allow->new,
);
- return DX::SearchState->new_for($hyp);
+ return DX::SearchState->new_for($hyp, $prop_seq);
}
sub with_additional_proposition {
has next_step => (is => 'ro', isa => Maybe[Step]);
+has propositions => (is => 'ro', isa => PropositionSequence, required => 1);
+
has alternatives => (is => 'ro', isa => AlternativeList, required => 1);
sub next_proposition { $_[0]->current_hypothesis->head_proposition }
sub new_for {
- my ($class, $hyp) = @_;
+ my ($class, $hyp, $props) = @_;
$class->new(
current_hypothesis => $hyp,
alternatives => [],
next_step => DX::Step::InvokeNextPredicate->new(
proposition => $hyp->head_proposition,
),
+ propositions => $props,
);
}
return ref($self)->new(
current_hypothesis => $first_alt->[0],
next_step => $first_alt->[1],
- alternatives => \@rest_alt
+ alternatives => \@rest_alt,
+ propositions => $self->propositions,
);
}