|
|
@ -9,7 +9,7 @@
|
|
|
|
use std::collections::BTreeSet;
|
|
|
|
use std::collections::BTreeSet;
|
|
|
|
|
|
|
|
|
|
|
|
use itertools::Itertools;
|
|
|
|
use itertools::Itertools;
|
|
|
|
use miette::{bail, ensure, Diagnostic, Result};
|
|
|
|
use miette::{bail, ensure, Diagnostic, Result, miette};
|
|
|
|
use thiserror::Error;
|
|
|
|
use thiserror::Error;
|
|
|
|
|
|
|
|
|
|
|
|
use crate::data::expr::Expr;
|
|
|
|
use crate::data::expr::Expr;
|
|
|
@ -201,7 +201,9 @@ impl InputAtom {
|
|
|
|
let mut args = args
|
|
|
|
let mut args = args
|
|
|
|
.into_iter()
|
|
|
|
.into_iter()
|
|
|
|
.map(|a| a.do_disjunctive_normal_form(gen, tx));
|
|
|
|
.map(|a| a.do_disjunctive_normal_form(gen, tx));
|
|
|
|
let mut result = args.next().unwrap()?;
|
|
|
|
let mut result = args
|
|
|
|
|
|
|
|
.next()
|
|
|
|
|
|
|
|
.ok_or_else(|| miette!("empty conjunction"))??;
|
|
|
|
for a in args {
|
|
|
|
for a in args {
|
|
|
|
result = result.conjunctive_to_disjunctive_de_morgen(a?)
|
|
|
|
result = result.conjunctive_to_disjunctive_de_morgen(a?)
|
|
|
|
}
|
|
|
|
}
|
|
|
|