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

Update apps/tc/README.md #568

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

Update apps/tc/README.md #568

wants to merge 2 commits into from

Conversation

gares
Copy link
Contributor

@gares gares commented Jan 4, 2024

TODO/questions:

  • #[name="name",graft(before="this")] TC.Instance foo that add/replaces foo.
  • TC.Declare should set modes to input by default
  • TC.Declare should declare "class methods" so that this works
     Class Eqb (T: Type) := {
        eqb : T -> T -> bool; 
        eqb_leibniz A B: eqb A B = true <-> A = B
    }.
    #[refine] Instance eqBool : Eqb bool := {
      eqb x y := if x then y else negb y
    }.
    Proof. intros [] []; intuition. Qed.
    
  • TC.unfold constant.
  • TC.failsafe class adds a rule for class that makes it fail safe, unresolved goals are given back to the user and displayed by Coq (requires @no-tc!) from @Tragicus
  • use the bool parameter named fail in the .ml code and assert the list of new/shelved goals is empty
  • order of impargs in TC.Declare
  • subclasses events wrong order
  • don't call partition before msolve, expose partition/clusterize as an API on goals.
  • msolve and solve are both called in case of a failre (remove rules for solve)

@FissoreD
Copy link
Collaborator

FissoreD commented Jan 9, 2024

TC.Declare should declare "class methods" so that this works

In pure coq, we get the same error of unbound method name:

Record Eqb (T: Type) := {
    eqb : T -> T -> bool; 
    eqb_leibniz A B: eqb A B = true <-> A = B
}.

Existing Class Eqb.

#[refine] Instance eqBool : Eqb bool := {
  eqb x y := if x then y else negb y
}.
Proof. intros [] []; intuition. Qed.

the call to Record.declare_existing_class does not build the class mehods.

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

Successfully merging this pull request may close these issues.

2 participants