2

I have a goal which looks something like "\<forall>x. \<exists>y.\<forall>(z::real). P x y z". Is there a rule which immediately allows me to conclude "\<forall>x. \<exists>y.\<forall>(z::real). P x y (z-2)"? If there isn't, I'd appreciate general advice on how to prove this type of goal.

I know I can prove it by using lots of allI,exI, allE,exE, but it seems like there must be a quick and simple way.

1 Answers1

1

The following works in Isabelle2016-1-RC2:

lemma
  assumes "∀x. ∃y.∀(z::real). P x y z"
  shows "∀x. ∃y.∀(z::real). P x y (z-2)"
using assms by force

You can use the try0 command to give you a list of proof methods that are able to solve the goal.

larsrh
  • 2,579
  • 8
  • 30
  • This is helpful. Unfortunately, the thing I really want to prove is slightly more complicated and doesn't work using this. –  Nov 22 '16 at 17:42
  • 1
    You can try peeling off one quantifier after the other and doing only the minimum amount of work to aid automation. – larsrh Nov 22 '16 at 23:29