abella-prover / abella

An interactive theorem prover based on lambda-tree syntax
https://abella-prover.org/
GNU General Public License v3.0
90 stars 18 forks source link

apply tactic fails to do equivariant matching #26

Closed chaudhuri closed 10 years ago

chaudhuri commented 10 years ago

This should work, but doesn't.

Kind i type.
Type p i -> prop.

Theorem bad : nabla x y, (p x -> false) -> (p y -> false).
intros. apply H1 to H2.

To make it work we need this proof.

Theorem works : nabla x y, (p x -> false) -> (p y -> false).
intros.
assert forall (z:i), nabla x, p x -> false.
apply H3 to H2.

Alternatively, use backchain instead of assert and apply.

The reason for the forall for the asserted formula there is an unrelated bug to be filed presently.

chaudhuri commented 10 years ago

See also #27.

chaudhuri commented 10 years ago

This is probably ultimately not a bug at all, since the permute tactic can be used to renumber the nominals. It makes the scripts a bit more manual than one would like, perhaps.