use prop::*; use ava_modal::*; use hooo::*; // `¬¬¬◇a => ¬□a`. pub fn proof1(nnnpos_a: Not>>>) -> Not> { imply::in_left(nnnpos_a, |x: Nec| { let x = npos_to_para(x); let x = para_rev_not(x); let x: Not>> = imply::in_left(x, npos_to_para); x }) } // `¬◇a => ¬□a`. pub fn proof2(npos_a: Not>) -> Not> { proof1(not::double(npos_a)) } /// `¬□a => ¬◇a`. pub unsafe fn proof3(nnec_a: Not>) -> Not> { let x = not::rev_triple(imply::in_left(nnec_a, |x: Not>>| { let x: Not> = imply::in_left(x, |y| para_to_npos(y)); let x = pow_not(x); let x = para_to_npos(x); x })); x } fn main() {}