use corosensei::Coroutine; use nanolog::ast::Body; use nanolog::ast::Module; use nanolog::ast::Predicate; fn main() { env_logger::builder() .filter_level(log::LevelFilter::Info) .format_timestamp(None) .format_module_path(false) .init(); //println!("{:#?}", Module::parse_from_file("1.pl")); let module: Module = " integer(zero). integer(s(X)) :- integer(X). add(X, zero, X). add(X, s(Y), Z) :- add(s(X), Y, Z). " .into(); // let a: Predicate = "integer(s(zero))".into(); // let b: Predicate = "integer(s(X))".into(); // // println!("{:?}", a.unify(&b)); let body: Body = "add(s(s(zero)), s(zero), s(s(s(zero))))".into(); let body: Body = "add(s(zero), s(zero), X).".into(); body.prove_in_module(&module).next().next(); // let body: Body = "integer(X).".into(); // body.prove_in_module(&module).next().next(); //println!("{}", module); // }