advancedresearch / prop

Propositional logic with types in Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Remove HOOO axiom by `not[not] <=> not`

bvssvni opened this issue · comments

Currently, one can prove the following:

pub fn proof<A: Prop>() -> False {
    let a: Pow<A, False> = fa();
    let b: Pow<Not<A>, False> = fa();
    hooo_not()(b)(a)
}

It seems sufficient to remove hooo::hooo_not.

This also implies that tauto_hooo_not is invalid, since tauto_hooo_not implies hooo_not.