Skip to content

Proof explanations for multi_rewrite #231

@K-dizzled

Description

@K-dizzled

Hi everyone!
I was exploring proof construction with egg. I needed to have non-symmetrical rules, so that when I check (a, b) for equivalence it is true, and (b, a) is not. I used a hack from tests/prop.rs with multi_rewrite, but I am facing something weird right now. If an Explanation<L> provided by explain_equivalence contains a multi_rewrite rule, its name in the graph is something like .../.cargo/registry/src/github.com-1ecc6299db9ec823/egg-0.9.3/src/multipattern.rs:167:32. I have just added a printing of a proof to tests/prop.rs here.

Trying to prove goal 5: (-> x z)
Explanation: (& (-> x y) (-> y z))
(Rewrite<= /Users/andrei/.cargo/registry/src/github.com-1ecc6299db9ec823/egg-0.9.3/src/multipattern.rs:167:32 (| (~ x) z))
(Rewrite=> def_imply_flip (-> x z))
test prove_chain ... ok

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions