Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symmetrical simplification #33

Open
2 of 5 tasks
hferee opened this issue Oct 9, 2024 · 2 comments
Open
2 of 5 tasks

Symmetrical simplification #33

hferee opened this issue Oct 9, 2024 · 2 comments

Comments

@hferee
Copy link
Owner

hferee commented Oct 9, 2024

Currently, contextual_simp_form simplifies conjunctions in an asymmetrical way. Plan:

  • Fix The definition of contextual_simp_form:
| φ1 ∧ φ2 =>
    let ψ1 := choose_conj (contextual_simp_form Δ φ1) (contextual_simp_form (φ1 :: Δ) φ2) in
    let ψ2 := choose_conj (contextual_simp_form (φ2 :: Δ) φ1) (contextual_simp_form Δ φ2) in
    if decide (weight ψ1 ≤ weight ψ2) then ψ1 else ψ2
  • Change the definition of choose_conj to be symmetrical too (and much simpler ; currently uses Provable_dec)
  • prove choose_conj_topR (like choose_conj_topL)
  • fix the rest of the proofs
  • Check with benchmarks that this improves the simplifiying process overall
@hferee
Copy link
Owner Author

hferee commented Oct 16, 2024

The chosen definition is not the one above, but choose_conj can still be simplified.

@hferee
Copy link
Owner Author

hferee commented Oct 18, 2024

Currently, large conjunctions are quite long to simplify (~ 7 seconds for a conjunction of size 700).
See if replacing choose_conj with its naïve version improves this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant