Closed silene closed 3 years ago
Very odd. Thanks for the report.
Potentially fixed in 5216bc5345b8db535132c70. Needs a little bit more testing.
While this solves the simplified script, my original script unfortunately still goes through:
Theorem baz : forall L, { L |- foo } -> false.
induction on 1.
intros.
case H1.
monotone H2 with L.
apply IH to H4.
Theorem bar : false.
apply baz to _ with L = foo :: nil.
/* Proof completed. */
Interesting. I didn't know monotone
was even allowed for focused sequents and anyhow the implementation of it in this case seems to have a huge bug. I'll need to do a little pen-and-paper work to make sure that the fix I have in mind is sound.
@yvting -- maybe this will be interesting to you as well since this goes back to the stuff you did in your internship.
As of now I can't think of any reason why the fix in 45d4954 would be unsound, so I'm closing this issue.
Consider the following proof of
false
(derived from my weak understanding of the JFR paper). Is there some criteria to help me detect such inconsistent signatures / modules? (For example, in Coq, I would look forAxiom
andAdmitted
, but what about Abella?)By the way, the "cut" example shipped with Abella suffers from the exact same inconsistency.