Zulip Chat Archive

Stream: mathlib4

Topic: Aesop fails on goal with bounded quantifiers


Violeta Hernández (Feb 27 2025 at 14:48):

Just came across this example which really feels like it should be within Aesop's capabilities, but doesn't work:

import Mathlib

example {α : Type*} {p : α  Prop} {a : α} {s : Set α} (h :  a  s,  b  s, p a  p b) (h' : a  s) :
     b  s, p b := by
  aesop -- fails

Oddly enough, aesop has no problem solving this if we remove the bounded quantifiers

import Mathlib

example {α : Type*} {p : α  Prop} {a : α} (h :  a,  b, p a  p b) :
     b, p b := by
  aesop -- suceeds

Is this a case of missing tags, or what's going on?

Jannis Limperg (Feb 28 2025 at 12:23):

Nested quantifiers in hypotheses (here: exists behind forall) are not supported particularly well. There is a fairly straightforward extension that could address this particular example, but in general this is actually a hard problem.

Without the bounded quantification, simp happens to simplify the hypothesis enough for Aesop to finish the rest; see aesop?.

Violeta Hernández (Feb 28 2025 at 23:26):

Is this straightforward extension a missing lemma? Or is it something more complex?

Violeta Hernández (Feb 28 2025 at 23:27):

Being able to solve this goal could compress a somewhat complex 8-line proof I have into a single aesop call


Last updated: May 02 2025 at 03:31 UTC