Skip to content

Commit 1e495d0

Browse files
committed
fix: insert raw commands and user-defined predicates before datatype defintions in .smt2 file
1 parent 0735236 commit 1e495d0

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

src/chc/smtlib2.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,12 @@ impl<'a> std::fmt::Display for System<'a> {
600600
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
601601
writeln!(f, "(set-logic HORN)\n")?;
602602

603+
writeln!(f, "{}\n", Datatypes::new(&self.ctx, self.ctx.datatypes()))?;
604+
for datatype in self.ctx.datatypes() {
605+
writeln!(f, "{}", DatatypeDiscrFun::new(&self.ctx, datatype))?;
606+
writeln!(f, "{}", MatcherPredFun::new(&self.ctx, datatype))?;
607+
}
608+
603609
// insert command from #![thrust::raw_command()] here
604610
for raw_command in &self.inner.raw_commands {
605611
writeln!(f, "{}\n", RawCommand::new(raw_command))?;
@@ -613,11 +619,6 @@ impl<'a> std::fmt::Display for System<'a> {
613619
)?;
614620
}
615621

616-
writeln!(f, "{}\n", Datatypes::new(&self.ctx, self.ctx.datatypes()))?;
617-
for datatype in self.ctx.datatypes() {
618-
writeln!(f, "{}", DatatypeDiscrFun::new(&self.ctx, datatype))?;
619-
writeln!(f, "{}", MatcherPredFun::new(&self.ctx, datatype))?;
620-
}
621622
writeln!(f)?;
622623
for (p, def) in self.inner.pred_vars.iter_enumerated() {
623624
if !def.debug_info.is_empty() {

0 commit comments

Comments
 (0)